微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

碰撞后未调用Unity5 OnTriggerEnter2D(2D游戏)

我是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属性

Ball

enter image description here

我敢肯定,如果有人可以向我指出,我会漏掉一些简单的东西.

解决方法:

如果要使用OnTriggerEnter2D,则还必须使用2D Collider.如第二个屏幕截图所示,您当前正在使用BoxCollider.

将其更改为BoxCollider2D,应调用Collision回调函数.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐