// Fixed update is called in sync with physics
        private void FixedUpdate()
        {
            // read inputs

            float h      = player.GetAxis("MoveHorizontalL");
            float v      = player.GetAxis("MoveVerticalL");
            bool  crouch = player.GetButton("Crouch");

            // 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;
            }
#if !MOBILE_INPUT
            // walk speed multiplier
            //  if (Input.GetKey(KeyCode.LeftShift)) m_Move *= 0.5f;
#endif

            // pass all parameters to the character control script
            m_Character.Move(m_Move, crouch, m_Jump);
            m_Jump = false;
        }
        // Fixed update is called in sync with physics
        private void FixedUpdate()
        {
            if (!isLocalPlayer)
            {
                return;
            }


            crouch = false;
            if (!escapeMenu || disableControls)
            {
                // read inputs
                h = player.GetAxis("WalkHorizontal") * (reverseControls ? -1 : 1);
                v = player.GetAxis("WalkVertical") * (reverseControls ? -1 : 1);

                // TODO: crouch input
                crouch  = player.GetButton("Crouch");
                m_Move  = new Vector3(h, 0, v) / 2;
                m_Move *= multiplyer;

                // TODO: run input
                // run speed multiplier
                if (player.GetButton("Run") && allowRunning)
                {
                    m_isRunning = true;
                    m_Move     *= 2.0f;
                }
                else
                {
                    m_isRunning = false;
                }
            }
            else
            {
                m_Move = Vector3.zero;
            }
            // pass all parameters to the character control script
            m_Character.Move(m_Move, crouch, m_Jump, escapeMenu);
            //m_Character.Fire(m_firing);
            m_Jump = false;
        }