Unity3D 控制角色(二)

接上文
Unity3D 控制角色(一)
https://blog.csdn.net/coldwind811201/article/details/80882593

  • Unity3D 控制角色(二)
      • 对于使用(一)方法的问题
      • 简单说明

Unity3D 控制角色(二)

对于使用(一)方法的问题

  • 模型会穿透地形
  • 如果给控制对象简单增加Rigidbody刚体组件会引起翻转
  • 使用角色控制的Move和SimpleMove可以简单粗爆解决

    Unity3D 控制角色(二)_第1张图片

    public float MoveSpeed = 15.0f;

    private CharacterController cc;

    // Use this for initialization
    void Start () {
        cc = GetComponent();
    }

    // Update is called once per frame
    void Update () {
        cc.SimpleMove(transform.TransformDirection(Vector3.forward) * MoveSpeed * Input.GetAxis("Vertical"));
        cc.SimpleMove(transform.right * MoveSpeed * Input.GetAxis("Horizontal"));
    }

简单说明

  • SimpleMove和Move的区别 SimpleMove自动使用了重力 Move则没有 需要自行处理重力引发的速度
  • 和刚体不同 有刚体的特性 又不完全基于物理 对角色控制更适合
  • 启用后原Colider不再有作用 直接使用的是角色控制器的Colider

你可能感兴趣的:(Unity3D)