Exemplo n.º 1
0
        public void PlayerMove(Vector2 direction)
        {
            bool has_inputs = direction.magnitude > 0.15f;

            if (has_inputs)
            {
                if (mothership.IsIdle())
                {
                    SetTrigger("StartRun");
                }

                else if (mothership.IsRunning())
                {
                    Vector3 desired_direction   = ComputePlayerDirection(direction);
                    Vector3 projected_direction = Vector3.ProjectOnPlane(desired_direction, Camera.main.transform.forward).normalized;
                    MoveBody(projected_direction * Speed);

                    TargetRotation = transform.rotation * ComputeAngleFromForward(projected_direction);
                }

                else if (mothership.IsJumping())
                {
                    Vector3 desired_direction = ComputePlayerDirection(direction);
                    MoveBody(desired_direction * AirSpeed);
                    // TargetRotation = transform.rotation*ComputeAngleFromForward(desired_direction);
                }
            }
            else
            {
                if (mothership.IsRunning())
                {
                    SetTrigger("Stop");
                }
            }
        }