所以,我有一个在游戏开始时处于非活动状态的游戏对象。所以,我把它放在一个在游戏开始时处于活动状态的父对象中。启动父对象的活动状态为Scoreboard
,其非活动子项称为Win
。
我想这是因为我收到了这个错误:
对象引用未设置为对象的实例。
我现在正在做的不正常工作是在开始时为scoreboard
和win
变量分配值,如下所示:(在start方法之前)
GameObject win;
GameObject scoreboard;
在Start()
:
scoreboard = GameObject.Find("Scoreboard");
win = GameObject.Find("/Scoreboard/Win");
注意:我觉得我的问题是将win
指定为非活动对象,但我可能错了。
如果不是,我做了一个名为Reset的方法:
void Reset()
{
WorldController.IsRunning = false;
win.SetActive(true);
}
WorldController.cs
处理世界和其他事物的速度,因为我的游戏是跑步者。问题不在这里这个脚本运行良好。
我在OnCollisionEnter(Collision collision)
内调用了重置方法
就在这里:
if (collision.collider.tag == "Obstacles")
{
hits++;
lives--;
L4txt.text = "Lives: " + lives;
if (hits == 3)
{
Reset();
}
}
hits
和lives
是与问题无关的得分值(int)。
答案 0 :(得分:1)
"注意:我觉得我的问题是将win分配为非活动对象,但我可能错了。"
EXACTLY!
它无法找到无效的对象
解!
使用公共变量 - 在检查器中拖动它