Pro_Unit

EnemyCharacter

Apr 6th, 2021 (edited)
426
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.95 KB | None | 0 0
  1. using UniRx;
  2. using UnityEngine;
  3.  
  4. public partial class EnemyCharacter
  5. {
  6.     private static readonly int IsMoving = Animator.StringToHash("IsMoving");
  7.  
  8.     private class FollowState : IState
  9.     {
  10.         private readonly EnemyCharacter _owner;
  11.        
  12.         public FollowState(EnemyCharacter owner) => _owner = owner;
  13.  
  14.         public void OnEnter()
  15.         {
  16.             _owner.EnablePath();
  17.             _owner._leftTrack.SetBool(IsMoving, true);
  18.             _owner._rightTrack.SetBool(IsMoving,true);
  19.            
  20.         }
  21.  
  22.         public void OnUpdate()
  23.         {
  24.             _owner.CheckTarget();
  25.  
  26.             _owner.CheckCanAttack();
  27.         }
  28.  
  29.         public void OnExit()
  30.         {
  31.             _owner.DisablePath();
  32.             _owner._leftTrack.SetBool(IsMoving, false);
  33.             _owner._rightTrack.SetBool(IsMoving,false);
  34.            
  35.         }
  36.     }
  37.  
  38.     private void CheckTarget()
  39.     {
  40.         if (IsTargetInAgroDistance) return;
  41.  
  42.         ResetTarget();
  43.  
  44.         _stateMachine.TransitToState(_idle);
  45.     }
  46.  
  47.     private void CheckCanAttack()
  48.     {
  49.         if (CanAttack)
  50.             _stateMachine.TransitToState(_attack);
  51.     }
  52. }
Add Comment
Please, Sign In to add comment