OnCollisionEnter2D无法发送信息

时间:2015-07-26 23:40:08

标签: c# unity3d 2d collision-detection

我正在测试OnCollisonEnter2D,它似乎并不想为我工作。 我在我的两个游戏对象上都有盒式对撞机2d和rigidbody2d,而且它无法向控制台发送消息。

using UnityEngine;
using System.Collections;

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

}
}

我从Scripting API中获取了这条海峡,但它并不想工作。

4 个答案:

答案 0 :(得分:0)

脚本没有问题。问题必须出在“boxcollider2d”组件中。请检查“boxcollider2d”的大小,在x和y以及两个游戏对象中将其更改为100。如果你能看到“boxcollider2d”小发明,请检查场景视图。你必须使“boxcollider2d”与你的游戏对象一样大,然后只有OnCollisionEnter2D可以工作。

答案 1 :(得分:0)

如果你不需要你的物体受物理影响 然后设置isKinematic = falseGravity Scale = 0,并记住将OnCollisionEnter2D脚本附加到gameObject

答案 2 :(得分:0)

一些事情:

void OnCollisionEnter2D(Collision2D coll) {
    if (coll.gameObject.tag == "Cube")
        print ("hit");
}
  1. 确保您与正确的标记进行比较(记住区分大小写)。
  2. 确保要比较的gameObject已链接此标记。可能是您定义了标记,但没有带有此标记的gameObject。
  3. 检查对手组件的大小,它应该足以接收触摸事件。
  4. 希望它有所帮助!

答案 3 :(得分:0)

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