关于UnityException: GameObject has undefined tag!错误中所遇到的问题
当物体销毁与碰撞检测因生命周期原因所发生的时间上的问题,具体类型为在碰撞检测中使用gameobject.tag来判断物体时使用==来检测tag的名称,例如
private void OnTriggerExit(Collider other)
{
if (other.gameObject.tag == "BoxCollider")
{
var car = other.GetComponentInParent<CarEntity>();
if (car != null)
{
RemoveCar(car);
}
}
}
此时,当物体在检测到触发物体时由于触发物体被销毁,就有可能会有如标题的报错
推荐使用CompareTag();方法,如下所示
private void OnTriggerExit(Collider other)
{
if (other.gameObject.CompareTag( "BoxCollider"))
{
var car = other.GetComponentInParent<CarEntity>();
if (car != null)
{
RemoveCar(car);
}
}
}