我正在制作一个游戏,当玩家与尖峰碰撞时,应该切换场景。
我为该球员标记了球员,在该球员和尖刺上有一个对撞机。
using UnityEngine.SceneManagement;
public class Die : MonoBehaviour
{
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "EnemySpike(Clone)")
{
SceneManager.LoadScene("Death");
}
}
}
它没有给出任何错误,只是不起作用。
答案 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。