C# OnCollisionInter2d无法发送信息

C# OnCollisionInter2d无法发送信息,c#,unity3d,2d,collision-detection,C#,Unity3d,2d,Collision Detection,我正在测试OnCollisioner2D,它似乎不适合我。 我在两个游戏对象上都安装了box collider 2d和rigidbody2d,但它仍然无法向控制台发送消息 using UnityEngine; using System.Collections; public class CollisionAndResetSystem : MonoBehaviour { void OnCollisionEnter2D(Collision2D coll) { if (coll.gameOb

我正在测试OnCollisioner2D,它似乎不适合我。 我在两个游戏对象上都安装了box collider 2d和rigidbody2d,但它仍然无法向控制台发送消息

using UnityEngine;
using System.Collections;

public class CollisionAndResetSystem : MonoBehaviour {
void OnCollisionEnter2D(Collision2D coll) {
    if (coll.gameObject.tag == "Cube")
        print ("hit");

}
}

我从脚本API中得到了这个问题,它不想工作。

脚本中没有问题。问题必须在“BoxCollizedR2D”组件中。请检查“BoxCollizedR2D”的大小,将其在x和y以及两个游戏对象中的大小更改为100左右。如果您可以看到“BoxCollimer2d”gizmo,请签入场景视图。你必须使“BoxCollizer2D”与你的游戏对象一样大,然后只有OnCollizeInter2D可以工作。

如果你不需要你的对象受物理影响的话 然后设置
iskinetic=false
Gravity Scale=0
,并记住将您的
OnCollisionInter2D
脚本附加到您的
游戏对象上
以下几件事:

void OnCollisionEnter2D(Collision2D coll) {
    if (coll.gameObject.tag == "Cube")
        print ("hit");
}
  • 确保与正确的标签进行比较(请记住区分大小写)
  • 确保正在比较的游戏对象已链接此标记。可能是您定义了标签,但没有带有此标签的游戏对象
  • 检查碰撞器组件的大小,它应该足够大以接收触摸事件

  • 希望有帮助

    最重要的是检查脚本附加到哪个游戏对象,交叉检查脚本是否附加到您试图与之发生冲突的游戏对象。并使用Debug.log()代替Print(),希望对您有所帮助。

    我刚才拼写的碰撞错误。。。