我想在与尖峰碰撞后将播放器发送到重新启动屏幕

时间:2018-12-23 17:16:04

标签: c# unity3d

我正在制作一个游戏,当玩家与尖峰碰撞时,应该切换场景。

我为该球员标记了球员,在该球员和尖刺上有一个对撞机。

using UnityEngine.SceneManagement;

public class Die : MonoBehaviour
{
    void OnCollisionEnter(Collision collision)
    {

        if (collision.gameObject.tag == "EnemySpike(Clone)")
        {

            SceneManager.LoadScene("Death");

        }
    }
}

它没有给出任何错误,只是不起作用。

2 个答案:

答案 0 :(得分:2)

我假设永远不会调用LoadScene,因为在您的if语句中,您将GameObject的标记与GameObject的名称进行了比较。您可以将collision.gameObject.tag更改为collision.gameObject.name,也可以将字符串更改为对象实际标签。另外,最好记录发生冲突的时间,以便您确认检测到冲突。为此,只需使用Debug.Log("Collided With Spike");

答案 1 :(得分:0)

为了能够至少检测到碰撞,

必须具有刚体。对撞机是行不通的。

我一直都遇到这个问题。您可以执行Print("Collided");以查看碰撞是否完全消失。我敢打赌不是。您需要添加一个RigidBody

如果它们都具有刚体,请尝试使用ontrigger enter并将尖峰对撞机设置为istrigger。