// Update is called once per frame
    void Update()
    {
        if (EventSystem.current.currentSelectedGameObject)
        {
            return;
        }

        if (controller.isGrounded)
        {
            moveDirection  = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
            moveDirection  = Quaternion.Euler(0, Camera.main.transform.eulerAngles.y, 0) * moveDirection;
            moveDirection *= speed;
            var magnitude = moveDirection.magnitude;
            if (magnitude > 0)
            {
                transform.rotation = Quaternion.LookRotation(moveDirection);
            }
            if (trigger)
            {
                trigger.SetSpeed(magnitude);
            }
            if (Input.GetButton("Jump"))
            {
                moveDirection.y = jumpSpeed;
                if (trigger)
                {
                    trigger.TriggerJump();
                }
            }
        }
        else
        {
            moveDirection.y -= gravity * Time.deltaTime;
        }

        controller.Move(moveDirection * Time.deltaTime);
    }