我有一个连接了对撞机的空物体,它跟随着鼠标。“是触发器”框没有选中,就这样。
现在,在我的另一个对象上,我也添加了一个碰撞器(当然是二维的),并将其设置为“is trigger”= true,但我也尝试了取消选中该框。
当进入触发“区域”时,应执行以下代码:
public void OnTriggerEnter2D(Collider2D collider)
{
print("found coin");
manager.AddCoin();
Destroy(gameObject);
}
但事实并非如此,我该怎么解决这个问题?
2条答案
按热度按时间lsmepo6l1#
听起来你需要一个RigidBody2D附加到你的第一个gameObject(你正在移动的那个)。要检测碰撞,至少一个对象必须有这个组件(在Docs中获得更多信息)
xienkqul2#
我 * 认为 * 你需要你的一个对象有一个Rigidbody2D附加到它,以便物理引擎真正参与和检测碰撞(甚至触发)。
文件似乎暗示:
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter2D.html
注意:仅当其中一个碰撞器还附加了Rigidbody2D时,才会发送触发事件.触发事件将发送到禁用得MonoBehaviours,以允许启用行为来响应碰撞.