我不知道为什么,但是当我用平移连续移动球体时,当球体和墙壁之间有接触时,球体会在墙内进入一点点。
我附上了一个小视频,我的FSM和我球体的检查员。
非常感谢你的帮助......
此致
安东尼
视频: https://www.dropbox.com/s/kq4nfu3t6j2mprz/tile%20collision.mp4
答案 0 :(得分:5)
由于你的球体是一个刚体并且不是运动学的,你不应该直接翻译它。相反,您可以使用Rigidbody.AddForce添加力来移动它。
为了清楚起见,运动刚体是一个刚体,它不受物理本身的影响,但可以在没有反力的情况下移动其他刚体。在这种情况下使用它没有任何意义,因为你希望球体与物体碰撞,并受到重力的影响。
直接转换对象位置的问题在于它不使用物理引擎物理移动对象。然后,物理引擎必须将对象从与其交叉的框中推出。然后在下一帧中将球体移回框中,循环继续。
使用内置物理引擎为球体添加力量的另一个好处是,您可以免费获得基本上真实的运动。你不需要做任何额外的工作。