// Update is called once per frame
        private void Update()
        {
            RotateView();
            // the jump state needs to read here to make sure it is not missed
            if (!m_Jump && !m_Jumping)
            {
                m_Jump = CrossPlatformInputManager.GetButtonDown("Jump");
            }


            if (!m_PreviouslyGrounded && m_CharacterController.isGrounded)
            {
                StartCoroutine(m_JumpBob.DoBobCycle());
                PlayLandingSound();
                m_MoveDir.y = 0f;
                m_Jumping   = false;
            }
            if (!m_CharacterController.isGrounded && !m_Jumping && m_PreviouslyGrounded)
            {
                m_MoveDir.y = 0f;
            }

            m_PreviouslyGrounded = m_CharacterController.isGrounded;

            if (platform != null)
            {
                m_CharacterController.enabled = false;
                transform.position            = transform.position + platform.GetTranslation();
                m_CharacterController.enabled = true;
            }
        }