【发布时间】:2016-03-03 10:29:02
【问题描述】:
所以,我有一个在游戏开始时处于非活动状态的游戏对象。所以,我把它放在一个在游戏开始时处于活动状态的父对象中。启动时的活动父对象是Scoreboard,它的inactive 子对象称为Win。
我认为这是因为我收到此错误:
对象引用未设置为对象的实例。
我现在正在做的不起作用的是在开始时将值分配给 scoreboard 和 win 变量,如下所示:(在 start 方法之前)
GameObject win;
GameObject scoreboard;
在Start():
scoreboard = GameObject.Find("Scoreboard");
win = GameObject.Find("/Scoreboard/Win");
注意:我觉得我的问题是分配 win 一个非活动对象,但我可能是错的。
如果不是这样,我做了一个叫做重置的方法:
void Reset()
{
WorldController.IsRunning = false;
win.SetActive(true);
}
WorldController.cs 处理世界的速度和其他事情,因为我的游戏是跑步者。问题不在这里,这个脚本运行良好。
我在 OnCollisionEnter(Collision collision) 内部调用了 reset 方法
就在这里:
if (collision.collider.tag == "Obstacles")
{
hits++;
lives--;
L4txt.text = "Lives: " + lives;
if (hits == 3)
{
Reset();
}
}
hits 和 lives 是与问题无关的得分值(int)。
【问题讨论】: