无法获得碰撞或触发以处理 2 个 2D 对象

scr*_*low 1 c# collision-detection unity-game-engine unity5

我有 2 个精灵,都附加了“Box Collider 2D”组件。我在附加到两个对象的脚本中放置了相同的检测功能:

void OnTriggerEnter2D(Collider2D coll) {
    Debug.Log ("Something triggered with me!!!");
}


void OnCollisionEnter2D( Collision2D coll ) { 
    Debug.Log ("Something collided with me!!!");
}
Run Code Online (Sandbox Code Playgroud)
  • 这是 Unity 5.2.1f1
  • 我试过触发器检查和触发器未检查。我更喜欢使用触发器,因为我不需要对象在物理上相互影响。
  • 我已经验证了函数名称和参数的拼写。我也试过删除这两个参数。
  • 任何一个对象上都没有 2D 刚体(我不需要,是吗?)
  • 移动当前由对象的 Update() 循环中的 Translate() 处理。
  • 我已经使用“Edit Collider”验证了每个周围都有一个像样的框。
  • 我已经 RTFM 并通读了其他人在这里看到的大多数问题,但我看不出我遗漏了什么。我已将所有可碰撞对象放置在名为“Character”的同一层上,它出现在项目设置的 2D 碰撞矩阵中并被选中。

在此处输入图片说明

有什么建议?

小智 5

如果我没记错的话,您应该添加一个刚体 2d。

就试一试吧。并编写一小行代码来重置另一个对撞机(正在向玩家对象/测试对象移动的对象)。

我不在家为你测试,但这是我的猜测;)