销毁一个对象给了我一个不定的错误循环

时间:2016-04-01 18:13:57

标签: c# unity3d

我正在为学校制作基本游戏而且我被困住了。

在下面的更新方法中(对敌人)我从我的Player对象上的PlayerHealth脚本中获取了一个布尔值。

当我的健康状况不佳时,我会破坏gameObject Player。 因此,我的更新方法(在一个敌人身上)不断循环,搜索我已经被摧毁的玩家对象。

我不知道如何解决这个问题。我希望if / else语句可以正常工作,但事实并非如此。

 void Update()
 {
     if (!GameObject.Find("Player").GetComponent <PlayerHealth>().deadPlayer) //false --> Chase
     {
         transform.position = Vector3.MoveTowards(transform.position, player.transform.position, chaseSpeed);  //move towards character
     } else
     {
         transform.position = transform.position;
     }
 }

一些额外信息:

这是我得到的错误

Object reference not set to an instance of an object

但我知道这是因为playerObject不再存在。双击时会将我发送给

if (!GameObject.Find("Player").GetComponent <PlayerHealth>().deadPlayer) //false --> Chase

任何人都可以帮助我吗?

我将值更改为true的脚本:

if (currentHealth <= 0)
{
    deadPlayer = true;
    Destroy(gameObject);
}

1 个答案:

答案 0 :(得分:4)

为什么不检查玩家是否存在? if (GameObject.Find("Player") != null)

如果销毁某个对象,则无法访问该对象上的组件。