54 lines
1.4 KiB
C#

using Koptilnya.StateMachine;
using UnityEngine;
namespace Characters.Enemy.States
{
public class ChaseState : State<EnemyState>
{
private readonly Enemy _enemy;
public ChaseState(Enemy enemy) : base(EnemyState.Chase)
{
_enemy = enemy;
}
public override void Enter()
{
_enemy.SetAimRigWeight(1f);
}
public override void Update()
{
_enemy.agent.destination = _enemy.target.position;
float distance = Vector3.Distance(_enemy.target.transform.position, _enemy.transform.position);
if (distance < _enemy.aggressionDistance)
{
_enemy.aimTransform.position = _enemy.target.position + _enemy.target.up * 1.2f;
// if (distance < 1f)
// {
// if (canAttack && !isKilling)
// {
// RpcKillPlayer(_target);
// animator.SetTrigger("attack");
//
// StartCoroutine(AfterKillTimer());
// }
// }
}
else
{
_enemy.stateMachine.SetCurrentState(EnemyState.Idle);
}
}
public override void Exit()
{
_enemy.target = null;
_enemy.SetAimRigWeight(0f);
}
}
}