45 lines
1.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SlideState : MovingState
{
private float expiredTime = 0;
private float slideDuration = 0.75f;
public SlideState(PlayerStateMachine playerStateMachine) : base(playerStateMachine)
{}
public override void OnStateEnter()
{
playerSM.SetAnimatorSlideState(true);
playerSM.ChangeColliderCenter(playerSM.DefaultColliderCenter / 2);
playerSM.ChangeColliderHeight(playerSM.DefaultColliderHeight / 2);
//playerSM.ChangeRigWeight(playerSM.RightHandRig,0);
//WeaponController.canShoot = false;
}
public override void OnStateExit()
{
playerSM.SetAnimatorSlideState(false);
playerSM.VerticalDeltaPosition = 0;
expiredTime = 0;
playerSM.ResetColliderToDefault();
// WeaponController.canShoot = true;
//playerSM.ChangeRigWeight(playerSM.RightHandRig,1);
}
public override void Tick()
{
Slide();
base.Tick();
}
public void Slide()
{
expiredTime += Time.deltaTime;
float slideProgress = expiredTime / slideDuration;
if (slideProgress > slideDuration)
{
expiredTime = 0;
playerSM.SetState(playerSM.PlayerGroundState);
}
}
}