这是我的播放器spawn的代码,但我得到了一个空引用异常错误。
public class PlayerSpawn : MonoBehaviour
{
public Transform playerSpawn;
public Vector2 currentTrackPosition;
public bool activeRespawnTimer = false;
public float respawnTimer = 1.0f;
public float resetRespawnTimer = 1.0f;
void Start ()
{
if(playerSpawn != null)
{
transform.position = playerSpawn.position;
Debug.Log(playerSpawn);
}
}
void Update ()
{
if(activeRespawnTimer)
{
respawnTimer -= Time.deltaTime;
}
if(respawnTimer <= 0.0f)
{
transform.position = currentTrackPosition;
respawnTimer = resetRespawnTimer;
activeRespawnTimer = false;
}
}
void OnTriggerEnter2D(Collider2D other)
{
//im getting the error messege at this position
if(other.tag == "DeadZone")
{
activeRespawnTimer = true;
}
if(other.tag == "CheckPoint")
{
currentTrackPosition = transform.position;
}
}
}
有什么问题吗?谢谢你的帮助。
1条答案
按热度按时间pgky5nke1#
根据您提到的空引用异常发生的位置,看起来好像
other
或other.tag
是空的。考虑到OnTriggerEnter
只有在实际对象进入触发器时才被调用,我非常怀疑other
是空的,除非它在方法被调用之前就被破坏了。无论如何,安全总比遗憾好。一个简单的解决方案如下:
如果这仍然抛出异常,那么一定是其他原因导致了这个问题,所以请告诉我这是如何解决的。