我有一个安全区,碰撞器通过发送事件消息来检测我的玩家是否在里面。但是安全区内还有很多其他的物体。
为了检测我的播放器是否在里面,我使用:
void Start()
{
if (player == null)
{
player = GameObject.Find("Gringan").GetComponent<Player>();
Debug.Log("player = " + player.name);
}
}
void OnTriggerEnter(Collider other)
{
//else ...
if (other.transform.parent.GetComponent<Player>() == player)
{
print("Collision detected with trigger object " + player.name);
safe = true;
m_Player.PlayerIsSafe.Send(safe);
}
}
对于安全区内的其他对象,我得到一个空引用异常。(其他对象不需要.parent
也没有Player
组件......)
我想通过检测这些项目来避免这种情况,而不会收到错误消息。我想在“//else”之前写一些东西,只让我的播放器出现在下一个语句中(如果)。我尝试了标签和许多方法,但无法让它们工作。