通常使用刚体与碰撞体共同构成人物移动的物理系统。
有这么几点需要注意:
1、动态刚体一旦与一个没有弹性的碰撞体碰撞了后,那么其速度立刻变为0,并且不会反弹回来,没有其他操作,其速度一直为0,并且只有动态刚体才能与其他的碰撞体发生反应,调用OnColliderEnter和OnTriggerEnter。
2、动态刚体使用AddForce,它真的应用了物理模拟。也就是说,F*S=0.5*m*V^2。只要你一直给它加力,那么这个动态刚体就会一直获得动能,它的速度就会一直加快。如果没有设置线性阻尼,没有与groud的摩擦力,那么这个物体就会一直匀速直线运动。所以真的很真实。需要注意,摩擦力这个是需要在物理材质中进行设置的。
3、Unity物理系统的碰撞检测是离散的,是按固定间隔0.02秒进行检测(其他的所有物理行为都是按固定间隔进行计算的,但是这个间隔是可以在Editor中设置的。还有我们要注意Update的帧间隔,与固定0.02秒的物理间隔的关系。嗯~ o(* ̄▽ ̄*)o,他们的关系就是没有关系。因为他们不属于一个次元。但是我们要明白,Update的帧间隔在机器性能差的时候会影响到Unity物理系统,严重时会使物理系统瘫痪掉,也就是无法进行各种计算。各种各样的奇怪情况。)具体的情况参考https://blog.csdn.net/mao_xiao_feng/article/details/52605370
-
Rigidbody2D详解
一些事项&#