首页 > 解决方案 > 与 OnCollisionEnter2D 类发生冲突的问题

问题描述

我对一个简单的尖峰脚本有疑问。我已将以下脚本附加到尖峰。

查看它也有效。尖刺用于跳下游戏。在玩家已经跳下几个平台后,即使玩家没有碰到尖峰,脚本也会被解析。

public class CollisionSpikes : MonoBehaviour
{
    private void OnCollisionEnter2D(Collision2D other)
    {
        SceneManager.LoadScene(0);
    }
}

这是一个尖峰和它们的 BoxCollider2D 如何相互连接的图片。 图片

当所有对撞机相互接触时,我首先怀疑这会导致这个错误。但是问题还是出现了。这是一个视频,因此您可以了解错误: youtube video

这里有人知道如何解决这个问题吗?我对 Unity 和 C# 比较陌生,不幸的是我被困在这里。

谢谢你的帮助。:)

标签: unity3dcollision-detectioncollisioncollider

解决方案


尝试放置一个 Debug.Log(other) 以找出与您的尖峰相撞的内容。因为您没有过滤它,所以任何接触它都会触发该代码。我给你的建议是过滤它。使用一些标签。

做类似的事情

void OnCollisionEnter2D(Collision2D other)
{
    Debug.Log(other); // Find out what is triggering the function
    if(other.gameObject.tag == "player") {
        SceneManager.LoadScene(0);
    }
}

推荐阅读