我正在测试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中获取了这条海峡,但它并不想工作。
答案 0 :(得分:0)
脚本没有问题。问题必须出在“boxcollider2d”组件中。请检查“boxcollider2d”的大小,在x和y以及两个游戏对象中将其更改为100。如果你能看到“boxcollider2d”小发明,请检查场景视图。你必须使“boxcollider2d”与你的游戏对象一样大,然后只有OnCollisionEnter2D可以工作。
答案 1 :(得分:0)
如果你不需要你的物体受物理影响
然后设置isKinematic = false
和Gravity Scale = 0
,并记住将OnCollisionEnter2D
脚本附加到gameObject
答案 2 :(得分:0)
一些事情:
void OnCollisionEnter2D(Collision2D coll) {
if (coll.gameObject.tag == "Cube")
print ("hit");
}
希望它有所帮助!
答案 3 :(得分:0)
最重要的是检查脚本附加到哪个游戏对象,交叉检查您的脚本是否附加到您尝试与之碰撞的游戏对象。并使用Debug.log()代替Print(),希望这有帮助。