Character Controller

2019-04-14 20:18发布


Character Controller: 用来模拟人的,但是又不遵循Physic 的规则,因为Physic里面的规则不太适合于人类。 Character Controller 首先它也是一个Collider ,只不过它自己不接受任何的Physic事件的影响,完全用来模拟人的。 有height, radius 属性,还有slope limit小于多少度的坡,这个人物才能爬上去,一般对于人来说小于90度的才能爬。 step offset :如果人物离地面的高度小于这个值,那么人物就可以上楼梯 Min Move Distance:最小移动距离,当要移动的距离小于这个值时,干脆就不移动了。推荐设置为0
Skin width: 皮肤的深度,也就是两个人物或者人物和物体之间可以互相掺和在一起,这个就表示这个掺和的深度。
如果这个值设置的太小,那么人物就很容易卡住,经验值是大于等于0.01并且大于radius * 0.1  某个GameObject 被人物碰到了以后,就会触发CharacterController的OnControllerColliderHit() 这个函数 Character Controller 本身不响应Physic 系统,也就是说它完全无视外界施加给它的 Force, Torque 等,所以,如果你想让它响应Physic,最好的办法是添加一个Rigidbody。 Character Controller 要移动只能用Move这个方法来移动。  总结一句话:如果要模拟人的物理行为,那么就用这个CharacterController,它本身是一个Collider,并且还能很好的模拟人类的移动行为。 如果你还想让它接收外界的物理响应,那么就再加上一个RigidBody组件。 如果添加人物向下掉,可能地面没加碰撞,还可能要把Character Controller的所带的碰撞体向上移动到地面之上。