欢迎光临散文网 会员登陆 & 注册

CharacterController 角色控制器

2022-10-28 21:25 作者:限量版范儿  | 我要投稿


鉴于transform.Translate能够移动且不受前方游戏物体影响,能够直接穿过去,Rigibody移动的时候又会受到外界力的影响(虽然可以通过改变其上面的参数来限制),这个时候就用到了Character ControllerCharacter Controller同时拥有刚体的重力效果同时也不会收到外界力的影响。

  • Slope Limit 最大可以行走的坡度

  • Step Offset 最大能够行走的台阶高度

  • Skin Width 碰撞厚度,更改碰撞检测灵敏度,一般不需要更改

  • Min Move Distance 最小移动距离,一般不需要更改

  • Center 碰撞器的中心点

  • Radius 碰撞器的外观

  • Height 碰撞器的高度

// 移动速度 public float speed; // 旋转速度 public float rotationSpeed; // 角色控制器 public CharacterController cc; private void Update() {    // 通过获得轴向来获得对应的向量    Vector3 dir = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));    // 角色控制器的移动速度    cc.SimpleMove(dir * speed * Time.deltaTime);    // 防止键盘没有输出的时候模型突然转向到初始方向    if (dir.x != 0 || dir.z != 0) {        // 通过四元素改变游戏物体的转向        transform.rotation = Quaternion.LookRotation(dir);        // 通过四元数的线性插值改变游戏物体的转向,当前方向,目标方向,旋转速度        transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(dir), Time.deltaTime * rotationSpeed);    } }

Quaternion.Lerp线性插值
不使用线性插值改变游戏物体转向的时候会导致场景中的游戏物体突然转向,而使用线性插值改变游戏物体转向的时候会有缓动效果。

链接:https://www.dianjilingqu.com/590924.html

CharacterController 角色控制器的评论 (共 条)

分享到微博请遵守国家法律