未调用OnTriggerEnter2D

我试图在Unity中制作小行星的复制品。 问题是我的子弹没有触发小行星上的OnTriggerEnter2D方法。 小行星附有以下脚本:

 using UnityEngine; using System.Collections; public class Asteroid : MonoBehaviour { void Start () { print ("class initiated"); } void onTriggerEnter2D (Collider2D collider) { Debug.Log (collider); } } 

子弹GameObject具有运动学和触发器function,并附有Rigidbody 2D和Box Collider 2D。 小行星GameObject具有Rigidbody 2D和Circle Collider 2D,并且Is Kinematic和Is Trigger未经检查。

问题是拼写。 onTriggerEnter2Do应该大写。 像这样的简单错误可能毁了你的一天。 在我运行你的代码之前我甚至没有注意到它。

 void OnTriggerEnter2D(Collider2D collider) { Debug.Log(collider); } 

下次如果您不确定Unity回调函数的拼写,请在Visual Studio中单击鼠标右键,然后单击“ 实现MonoBehaviours”搜索所需的函数,选择它并单击“ 确定” 。 Visual Studio将为您添加该function。