// Fixed update is called in sync with physics
        private void FixedUpdate()
        {
            // read inputs
            float h = Input.GetAxis("Horizontal");
            float v = Input.GetAxis("Vertical");

            //bool crouch = Input.GetKey(KeyCode.C);

            if (h != 0 || v != 0)
            {
                Player.GetInstance().Animator.SetBool("Move", true);
            }
            else
            {
                Player.GetInstance().Animator.SetBool("Move", false);
            }


            //calculate move direction to pass to character

            if (m_Cam != null)
            {
                // calculate camera relative direction to move:
                m_CamForward = Vector3.Scale(m_Cam.forward, new Vector3(1, 0, 1)).normalized;
                m_Move       = v * m_CamForward + h * m_Cam.right;
            }
            else
            {
                // we use world-relative directions in the case of no main camera
                m_Move = v * Vector3.forward + h * Vector3.right;
            }

            // pass all parameters to the character control script
            m_Character.Move(m_Move, false, false);
            m_Jump = false;
        }