Character Controller

  1. Character Controller

可以让角色“动起来”的常用组件有三个:Transform,Rigidbody,Character Controller
角色控制器也属于物理组件,它的位置在:
Component- >Physics- >Character Controller
角色控制器主要用于第三人称或者第一人称游戏主角(人形为主)控制。

  1. 控制角色移动
    SimpleMove(Vector3):简单移动

以一定的速度移动角色,会自动应用重力。
[角色控制器不是刚体,但是具备刚体的一些属性]
Move(Vector3):移动
更为复杂的一种运动,每次都绝对运动,不会应用重力。

水平:Horizontal,对应 AD 键,以及方向键的←和→。
垂直:Vertical,对应 WS 键,以及方向键的↑和↓。
轴向有返回值的,范围为-1 ~ 0 ~ 1。根据按键的力度返回相应的值。
4.取得轴向的值
Input.GetAxis(“轴向名称”);

float horizontal=Input.GetAxis("Horizontal");
float vertical = Input.GetAxis ("Vertical");
//具有刚体的一些属性的简单移动
m_CC.SimpleMove ((new Vector3 (horizontal, 0, vertical))*3);
//移动 不会掉落
m_CC.Move ((new Vector3 (horizontal, 0, vertical))*0.333f);

角色控制器属性讲解

  1. Slope Limit

斜率限制,控制角色最大的爬坡斜度。[演示:角色爬坡]

  1. Step Offset

台阶高度,控制角色可以迈上最大的台阶高度。[演示:角色上台阶]

  1. Skin Width [默认即可]

皮肤厚度,在角色的外围包裹着一层“皮肤”,设置这层皮肤的厚度。
数值调大,最明显的就是角色和地面之间的间距变大,也就是角色皮肤变厚了。

  1. Min Move Distance [默认即可]

最小移动距离,默认是 0.001,也就是 1 毫米。
如果该数值调大,但代码中单位移动速度很慢,角色就不会动。

  1. Center/Radius/Height

角色控制器组件在 Scene 面板中体现为一个“胶囊碰撞器”的形状。
Center:控制中心点的位置;
Radius:控制半径;
Height:控制高度。

小技巧:在 Game 面板将 Gizmos 设置为选中状态,可以在运行状态看到组
件的图标,方便运行过程中对组件进行调试。

方法

void OnControllerColliderHit(ControllerColliderHit hit){
    Debug.Log (hit.gameObject.name);
}

Apply Root Motion

勾选上之后,如果动画有位移,则真的发生位移。

动画过渡延迟

把过渡线上的Has Exit Time勾掉即可马上过渡。