我正在为学校制作基本游戏而且我被困住了。
在下面的更新方法中(对敌人)我从我的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);
}
答案 0 :(得分:4)
为什么不检查玩家是否存在?
if (GameObject.Find("Player") != null)
如果销毁某个对象,则无法访问该对象上的组件。