unity角色控制器简介

Character Controller

用于应用到会动的游戏对象上,添加角色控制器后,会自动添加一个胶囊碰撞体

主要参数说明:

  • Slope Limit:坡度限制

  • Step Offset:台阶高度

  • -Skin Width:皮肤厚度,控制双方渗入的深度,一般是Radius值的10%

  • Min Move Distance:最小移动距离,大多数情况下设置为0

  • Center、 Radius、 Height:胶囊碰撞体的中心、半径、高度

移动的方法:

  • move:指定一个向量,完成移动

  • SimpleMove:会受到重力的影响而发生移动

  • 注意:使用 SimpleMove方法,当发生旋转后,坐标系发生变化,移动时需要设置本地坐标系的值this.gameObject.transform.forward

  • 如果需要模拟游戏对象受策略的影响,可以添加内置脚本中的 CharacterMotor到游戏对象上

  • 示例1:通过点击控制移动

    • 方法Vector33. ClampMagnitude(dest-src, speed):表示将向量转换成指定长度
  • 示例2:通过键盘控制移动

  • 注意:使用物理引擎控制的移动,都使用本地坐标系,包括 rigidbody、角色控制器

用角色控制器来控制方块移动Demo:

public class CCDemo : MonoBehaviour
{
    //角色控制器
    private CharacterController cc;
    //速度
    private float speed;

    // Start is called before the first frame update
    void Start()
    {
        cc = GetComponent();
        speed = 100f;
    }

    // Update is called once per frame
    void Update()
    {
        cc.SimpleMove(Vector3.forward * speed * Time.deltaTime * Input.GetAxisRaw("Horizontal"));
    }
}

效果如下:

unity角色控制器简介_第1张图片

你可能感兴趣的:(Unity笔记)