【发布时间】:2017-10-07 23:46:46
【问题描述】:
在我的游戏中,我有 2 个对象。我希望它们能够碰撞而不是相互穿过。目前 Collision 正在工作,但是当一个物体推动另一个物体时,另一个物体开始飘走。我不想要那个。如果没有物理(漂浮、推动等),我怎样才能获得碰撞(不相互穿过)?
【问题讨论】:
标签: unity3d
在我的游戏中,我有 2 个对象。我希望它们能够碰撞而不是相互穿过。目前 Collision 正在工作,但是当一个物体推动另一个物体时,另一个物体开始飘走。我不想要那个。如果没有物理(漂浮、推动等),我怎样才能获得碰撞(不相互穿过)?
【问题讨论】:
标签: unity3d
使游戏对象对施加在其上的外力做出反应的组件是刚体
-您可以在刚体上配置约束,这样被动物理(来自物体外部的力,如重力和碰撞)将不会在您阻挡的轴上起作用。只有主动部队会(如 AddForce() 方法) Ridigbody Component in Editor with all constraints enabled
-在静态对象(如墙壁、树)中,您可以移除刚体组件。它也会提高性能。仅在角色、车辆、球、子弹等动态对象中使用刚体
-A和B对象之间,至少有一个必须有刚体,否则无法进行碰撞检测(在包含方法OnCollisionEnter(或Stay)的对象中)
但要小心。如果没有刚体,您将无法使用 AddForce() 方法移动对象。如果在Transform上简单地使用Translate方法,碰撞检测会变得如此不准确
【讨论】: