OldBlueWater/BlueWater/Assets/02.Scripts/Character/CombatPlayer/StateMachines/DashBehavior.cs
NTG 27267fbeeb Closes #150
+ 주인공 스킬(검의 왈츠)가 추가되었습니다.
  ㄴ 검의 왈츠 애니메이션이 추가되었습니다.
  ㄴ 스킬에 맞게 UI를 표시합니다.
+ 주인공이 더 이상 공격 중에 이동할 수 없습니다.
+ 새로운 스킬 시스템으로 변경하였습니다.
+ Combat씬에서 사용할 Camera, Ui를 추가하였습니다.
+ Input Action이 변경 되었습니다. (UseSkill => ActivateMainSkill)
+ Idamameable 인터페이스에 GetCurrentHp() 기능이 추가되었습니다.
  ㄴ 변경에 따라 기존 스크립트들에 추가되었습니다.
2024-01-29 00:46:56 +09:00

41 lines
1.5 KiB
C#

using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class DashBehavior : StateMachineBehaviour
{
private CombatPlayerController combatPlayerController;
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
if (combatPlayerController == null)
{
combatPlayerController = animator.GetComponentInParent<CombatPlayerController>();
}
var animationLength = stateInfo.length;
animator.speed = animationLength / combatPlayerController.GetDashTime();
combatPlayerController.SetIsInvincibility(true);
combatPlayerController.SetIsDashing(true);
combatPlayerController.SetEnableDashing(false);
}
public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
if (stateInfo.normalizedTime >= 1.0f)
{
animator.SetBool(PhysicsMovement.IsDashingHash, false);
}
}
public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
animator.speed = 1f;
combatPlayerController.SetIsDashing(false);
combatPlayerController.SetIsInvincibility(false);
combatPlayerController.CoolDown(combatPlayerController.GetDashCooldown(), () => combatPlayerController.SetEnableDashing(true));
}
}
}