Unity3D:与"翻译"对象发生碰撞问题

aba*_*ab5 1 collision-detection fsm unity-game-engine

我不知道为什么,但是当我用平移连续移动球体时,当球体和墙壁之间存在接触时,球体会在墙内进入一点点.

我附上了一个小视频,我的FSM和我球体的检查员.

非常感谢您的帮助 ...

问候,

安东尼

我的FSM:https: //www.dropbox.com/s/nvohgkdvq5rd9pd/Capture%20d%E2%80%99%C3%A9cran%202014-06-12%20%C3%A0%2012.51.04.png

检查员:https://www.dropbox.com/s/1ec3numdfx33lbp/Capture%20d%E2%80%99%C3%A9cran%202014-06-12%20%C3%A0%2012.52.15.png

视频:https: //www.dropbox.com/s/kq4nfu3t6j2mprz/tile%20collision.mp4

Aqu*_*ral 5

由于你的球体是刚体并且不是运动学的,所以你不应该直接翻译它.相反,你可以通过使用Rigidbody.AddForce添加力来移动它.

为了清楚起见,运动刚体是一种刚体,它不受物理本身的影响,但可以在没有反力的情况下移动其他刚体.在这种情况下使用它没有任何意义,因为你希望球体与物体碰撞,并受到重力的影响.

直接转换对象位置的问题在于它不使用物理引擎物理移动对象.然后,物理引擎必须将对象从与其交叉的框中推出.然后在下一帧中将球体移回框中,循环继续.

使用内置物理引擎为球体增加力量的另一个好处是,您可以免费获得基本上真实的运动.你不需要做任何额外的工作.