Unity之Character Controller组件
Character Controller(角色控制器)主要用于对第三人称或第一人称游戏主角的控制,并不适用刚体物理效果。
1、Character Controller组件属性参数:
- Slope Limit:坡度限制。该参数用于设置自所控制的游戏对象只能爬上角度小于或等于该参数值的斜坡。
- Step Offset:台阶高度。该参数用于设置所控制的游戏对象可以迈上的最高台阶的高度。
- Skin Width:皮肤厚度。该参数决定了两个碰撞体可以相互渗入的深度,较大的参数值会产生抖动的现象,较小的参数值会导致所控制的游戏对象被卡住,较为合理的设置是该参数值为Radius值的10%。
- Min Move Distance:最小移动距离。如果所控制的游戏对象的移动距离小于该值,则游戏对象将不会移动,这样可避免抖动,大多数情况下该值设为0。
- Center:中心。该参数决定了胶囊碰撞体所控制的游戏对象的相对位置,并不影响所控制的游戏对象的中心坐标。
- Radius:半径。该参数用于设置胶囊碰撞体的半径。
- Height:高度。该参数用于设置胶囊碰撞体的高度。
2、Character Controller不会对施加给它的作用力做出反应,也不会作用于其他的刚体。如果想让Character Controller组件能够作用于其他的刚体对象,可以通过脚本[OnControllerColliderHit()函数]在与其相碰撞的对象上使用一个作用力。另外,如果想让Character Controller受物理效果影响,那最好用刚体来代替它。
3、Charcter Controller的Skin Width是非常重要的属性,因此必须正确地设置。如果角色卡住了,通常是由于Skin Width值设置的太小而导致的,该值可使其他的对象轻微地穿过Character Controller,并且可以避免抖动且防止角色卡住。
如果角色频繁地被卡住,尝试调整Skin Width的值。
通过编写脚本,角色控制器可通过物理效果来影响其他的对象。
角色控制器无法通过物理效果被其他游戏对象所影响。
文章摘自《Unity官方案例精讲》