C# Can';t获取碰撞或触发器以处理2个二维对象

C# Can';t获取碰撞或触发器以处理2个二维对象,c#,unity3d,collision-detection,unity5,C#,Unity3d,Collision Detection,Unity5,我有两个精灵,都附有“盒子碰撞器2D”组件。我在附加到两个对象的脚本中放置了相同的检测函数: void OnTriggerEnter2D(Collider2D coll) { Debug.Log ("Something triggered with me!!!"); } void OnCollisionEnter2D( Collision2D coll ) { Debug.Log ("Something collided with me!!!"); } 这是Unity

我有两个精灵,都附有“盒子碰撞器2D”组件。我在附加到两个对象的脚本中放置了相同的检测函数:

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


void OnCollisionEnter2D( Collision2D coll ) { 
    Debug.Log ("Something collided with me!!!");
}
  • 这是Unity 5.2.1f1
  • 我试过检查触发器和取消检查触发器。我更喜欢使用触发器,因为我不需要对象在物理上相互影响
  • 我已经验证了函数名和参数的拼写。我还尝试删除这两个参数
  • 两个对象上都没有二维刚体(我不需要,是吗?)
  • 移动当前由对象的Update()循环中的Translate()处理
  • 我已经使用“编辑碰撞器”验证了在每个框的周围都有一个合适的框
  • 我已经RTFM’ed并通读了其他人在这里看到的大多数问题,但我看不出我遗漏了什么。 我已将所有可碰撞对象放置在名为“角色”的同一层上,它将显示在项目设置中的二维碰撞矩阵中,并处于选中状态


有什么建议吗?

如果我没弄错的话,你应该添加一个刚体2d

试试看。并编写一行短代码,重置另一个碰撞器(向玩家对象/测试对象移动的对象)


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

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

试试看。并编写一行短代码,重置另一个碰撞器(向玩家对象/测试对象移动的对象)


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

事实上,至少有一个对象需要连接刚体以进行碰撞。在这种情况下,一个刚体2d。我称之为“重影”。没有刚体的游戏对象对我来说是幽灵:pConfirmed。向两个对象中的一个对象添加RigidBody2D使其全部工作。不幸的是,我无法解释为什么,因为这两个物体都不需要物理,它回避了一个问题:“盒子对撞机2D是做什么的?”但它现在可以工作了。我认为这是胡说八道,但请记住。使用至少1个刚体(玩家对象应包含一个刚体)。我不是统一专家,所以我不能告诉你:)事实上,至少有一个物体需要一个刚体来进行碰撞。在这种情况下,一个刚体2d。我称之为“重影”。没有刚体的游戏对象对我来说是幽灵:pConfirmed。向两个对象中的一个对象添加RigidBody2D使其全部工作。不幸的是,我无法解释为什么,因为这两个物体都不需要物理,它回避了一个问题:“盒子对撞机2D是做什么的?”但它现在可以工作了。我认为这是胡说八道,但请记住。使用至少1个刚体(玩家对象应包含一个刚体)。我不是统一专家,所以我不能告诉你:)你需要为任何你想启用物理的对象添加一个RigidBody2D。你需要为任何你想启用物理的对象添加一个RigidBody2D。