【问题标题】:Collision not detected in method OnCollisonEnter2D在方法 OnCollisonEnter2D 中未检测到碰撞
【发布时间】:2020-11-21 14:32:12
【问题描述】:

我正在尝试检测碰撞,但它们没有被触发:

public class cs_bullet : MonoBehaviour
{
    void OnCollisonEnter2D(Collision2D coll)
    {
        Debug.Log("collision");
        if (coll.gameObject.tag == "target")
        {
            Debug.Log("hit_target");
            Destroy(coll.gameObject);
            Destroy(gameObject);
        }
    }
}

子弹预制件

目标预制件

【问题讨论】:

  • 您是如何移动对象的?您是否尝试过将Rigidbody2D 也放在您的目标对象上?尝试使用Continues 而不是Discrete 来检测刚体的碰撞
  • 仅供参考,建议使用coll.gameObject.TagCompare('tag') 而不是coll.gameObject.tag == 'tag' - answers.unity.com/questions/200820/…

标签: unity3d collision-detection


【解决方案1】:

这可能是因为您需要将方法键入为“OnCollisionEnter2D”而不是“OnCollisonEnter2D”(您错过了名称中的“i”)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 2015-03-27
    相关资源
    最近更新 更多