我是Unity3D 5的新手,我的第一个2D游戏涉及到碰撞检测遇到了问题。我的移动物体是一个球形,有Rigidbody2D和CircleCollider2D组件。我的静止的“碰撞器或触发器”是一个BoxCollider,并且附带了一个脚本。当球通过静态框时,OnTriggerEnter2D应该被触发。我也尝试过OnCollisionEnter2D,但我相当确定应该使用OnTriggerEnter2D,因为我的静态框被标记为触发器。
代码如下:
代码如下:
public class LoseCollider : MonoBehaviour {
public LevelManager levelManager;
void OnCollisionEnter2D(Collision2D collision)
{
print("collide");
levelManager.LoadLevel("Lose");
}
void OnTriggerEnter2D(Collider2D trigger)
{
print("trigger");
levelManager.LoadLevel("Lose");
}
void OnCollisionEnter(Collision collision)
{
print("collide");
levelManager.LoadLevel("Lose");
}
void OnTriggerEnter(Collider trigger)
{
print("trigger");
levelManager.LoadLevel("Lose");
}
}
你可以看到我在测试各种变体,但是没有任何变体被调用。这是我的对象 Unity 属性:
以及
如果有人能指出我可能遗漏的简单问题,那就太好了。