Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UniRx;
- using UnityEngine;
- public partial class EnemyCharacter
- {
- private static readonly int IsMoving = Animator.StringToHash("IsMoving");
- private class FollowState : IState
- {
- private readonly EnemyCharacter _owner;
- public FollowState(EnemyCharacter owner) => _owner = owner;
- public void OnEnter()
- {
- _owner.EnablePath();
- _owner._leftTrack.SetBool(IsMoving, true);
- _owner._rightTrack.SetBool(IsMoving,true);
- }
- public void OnUpdate()
- {
- _owner.CheckTarget();
- _owner.CheckCanAttack();
- }
- public void OnExit()
- {
- _owner.DisablePath();
- _owner._leftTrack.SetBool(IsMoving, false);
- _owner._rightTrack.SetBool(IsMoving,false);
- }
- }
- private void CheckTarget()
- {
- if (IsTargetInAgroDistance) return;
- ResetTarget();
- _stateMachine.TransitToState(_idle);
- }
- private void CheckCanAttack()
- {
- if (CanAttack)
- _stateMachine.TransitToState(_attack);
- }
- }
Add Comment
Please, Sign In to add comment