unity CharactorController下Move()官方示例下跳跃时主角无法移动操作问题。

Posted m_f_s

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity CharactorController下Move()官方示例下跳跃时主角无法移动操作问题。相关的知识,希望对你有一定的参考价值。

转载注明出处   m_f_s

    public float speed = 6.0F;
    public float jumpSpeed = 8.0F;
    public float gravity = 20.0F;
   public float verVel  = 0;                    //vertical velocity
    private Vector3 moveDirection = Vector3.zero;

   void Update() {
         CharacterController controller = GetComponent<CharacterController>();

      moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
      moveDirection = transform.TransformDirection(moveDirection);
         moveDirection *= speed;

         if (controller.isGrounded) {
          if (Input.GetButton("Jump"))
               moveDirection.y = jumpSpeed;            
         }
         verVel = -= gravity * Time.deltaTime;
         moveDirection.y = verVel;
         controller.Move(moveDirection * Time.deltaTime);
    }

上面是官方给出的例子,由于检测移动是只能在地面上才能用,所以要将检测移动的代码移出至判定外。 但是将判定位移移出后Y轴将会一直为0,所以需要定义一个变量用来计算当前Y轴方向速度。

 

 

修改后代码:

 

 

 

    public float speed = 6.0F;
    public float jumpSpeed = 8.0F;
    public float gravity = 20.0F;
    private Vector3 moveDirection = Vector3.zero;
   void Update() {
        CharacterController controller = GetComponent<CharacterController>();
        if (controller.isGrounded) {
            moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
            moveDirection = transform.TransformDirection(moveDirection);
            moveDirection *= speed;
            if (Input.GetButton("Jump"))
                moveDirection.y = jumpSpeed;
            
        }
        moveDirection.y -= gravity * Time.deltaTime;
        controller.Move(moveDirection * Time.deltaTime);
    }

 


原创:http://www.cnblogs.com/m-f-s/

以上是关于unity CharactorController下Move()官方示例下跳跃时主角无法移动操作问题。的主要内容,如果未能解决你的问题,请参考以下文章

unity3d 第三人称视角的人物移动以及相机控制

unity怎么保存 unity保存的教程

unity怎么unity判断动画结束

unity和unity3D的区别

Unity3D资源文件 ③ ( Unity 资源包简介 | 导出 Unity 资源包 | 导出资源包的包含依赖选项 | 导入 Unity 资源包 | Unity 资源商店 )

Unity前景如何?现在unity还能找到工作吗?