当前位置:   article > 正文

【Unity3D】角色控制器(CharacterController)_unity 角色控制器

unity 角色控制器

1 简介

        控制角色移动的组件主要有:Transform 组件Rigidbody 组件、CharacterController 组件。Transform 组件通过控制角色位置实现移动,Rogidbody 组件通过控制角色速度实现移动,CharacterController 组件通过控制角色速度和模拟碰撞实现移动。Transform 组件和 Rogidbody 组件不便于控制角色爬坡和爬梯,CharacterController 组件能够很方便地实现角色在各种复杂地形中运动。

        CharacterController 继承 Collider(见→碰撞体组件Collider),其属性面板如下:

  • Slope Limit:爬坡最大角度
  • Step Offset:爬梯最大高度
  • Skin Width:皮肤厚度
  • Min Move Distance:最小移动距离
  • Center、Radius、Height:角色用于检测碰撞的胶囊体中心、半径、高

        说明:CharacterController 继承 Collider,并且其碰撞体是一个胶囊体。

        CharacterController 中控制角色移动的方法如下:

  1. public CollisionFlags Move(Vector3 motion)
  2. public bool SimpleMove(Vector3 speed)

2 应用

        1)游戏对象

        创建 2 个楼梯(每个楼梯由 5 个 Cube 对象拼成)和 2 个斜坡以及一个胶囊体,如下:

        2)脚本组件

        PlayerController.cs

  1. using UnityEngine;
  2. public class PlayerController : MonoBehaviour {
  3. private CharacterController character;
  4. private float speedRate = 4f;
  5. private void Start () {
  6. character = GetComponent<CharacterController>();
  7. }
  8. private void Update () {
  9. float hor = Input.GetAxis("Horizontal");
  10. float ver = Input.GetAxis("Vertical");
  11. Vector3 speed = new Vector3(hor, 0, ver) * speedRate;
  12. character.SimpleMove(speed);
  13. }
  14. }

         说明: PlayerController 脚本组件挂在胶囊体上。

        3)运行效果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/118749
推荐阅读
相关标签
  

闽ICP备14008679号