【问题标题】:Problem by collision with OnCollisionEnter2D class与 OnCollisionEnter2D 类发生冲突的问题
【发布时间】:2021-05-20 18:35:52
【问题描述】:

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

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

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

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

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

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

感谢您的帮助。 :)

【问题讨论】:

    标签: unity3d collision-detection collision collider


    【解决方案1】:

    尝试放置一个 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);
        }
    }
    

    【讨论】:

    • 感谢您告诉我过滤它所触及的内容。我什至没有再考虑这个了。在其他 OnCollisionEnter2D 或 OnTriggerEnter2D 类中,我已经这样做了。显然是我的一个错误。感谢您的回答 tiggaxxxx。 :)
    • 乐于助人:)
    猜你喜欢
    • 1970-01-01
    • 2012-09-26
    • 2013-11-26
    • 1970-01-01
    • 2017-06-24
    • 2015-10-04
    • 2014-01-30
    • 2022-11-18
    • 1970-01-01
    相关资源
    最近更新 更多