public virtual void YAxisAnimations()
    {
        bool grounded = WalkingPlayer.GetGrounded();

        Anim.SetBool("Grounded", grounded);

        if (grounded == LastGrounded)
        {
            return;
        }

        LastGrounded = grounded;
        if (LastGrounded)
        {
            ImpactOnFlootParticles.Play();
        }
    }
    private void HandleFootstepParticles(bool moving, bool sprinting)
    {
        MovingState newMovingState;
        bool        grounded = WalkingPlayer.GetGrounded();

        if (sprinting && grounded)
        {
            newMovingState = MovingState.sprinting;
        }
        else if (moving && grounded)
        {
            newMovingState = MovingState.moving;
        }
        else
        {
            newMovingState = MovingState.notMoving;
        }

        if (newMovingState == CurrentMovingState)
        {
            return;
        }

        CurrentMovingState = newMovingState;
        switch (CurrentMovingState)
        {
        case MovingState.notMoving:
            FootstepEmission.rateOverTime = EmissionEmpty;
            break;

        case MovingState.moving:
            FootstepEmission.rateOverTime = EmissionNormal;
            break;

        case MovingState.sprinting:
            FootstepEmission.rateOverTime = EmissionSprint;
            break;
        }
    }
 public virtual void YAxisAnimations()
 {
     Anim.SetBool("Grounded", WalkingPlayer.GetGrounded());
 }