unity 角色控制器,控制人物移动

  //获得键盘按键虚拟轴
        HeroMove.z = Input.GetAxis("Vertical") * Speed * Time.deltaTime;
        HeroMove.x = Input.GetAxis("Horizontal") * Speed * Time.deltaTime;
       //gyro为挂有陀螺仪脚本的对象,在这里只取他的Y轴,控制角色
        transform.localEulerAngles = new Vector3(transform.localEulerAngles.x,Gyro.localEulerAngles.y,transform.localEulerAngles.z);
        if (m_anim.IsPlaying("atk0") || m_anim.IsPlaying("atk01"))
        {


        }
        else
        {
            if (HeroMove.z != 0 || HeroMove.x != 0)
            {
                if (m_Charac.isGrounded)
                {
                    //播放脚步声
                    Clock++;
                    if (Clock > 12)
                    {
                        m_anim.Play("Run");
                        m_audio.PlayOneShot(Sounds[Random.Range(0, Sounds.Count)], 1F);
                        Clock = 0;
                    }
                }
            }
            else
            {
                m_anim.Play("idle1");
            }
            m_Charac.Move(this.transform.TransformDirection(HeroMove));
            //解决朝向问题
            Vector3 newDir = new Vector3(HeroMove.x, 0, HeroMove.z).normalized;
            child.forward = transform.TransformDirection(newDir) ;
        }

你可能感兴趣的:(移动开发)