Files
2024-11-20 15:21:28 +01:00

30 lines
1.3 KiB
C#

namespace Invector.vCharacterController.AI.FSMBehaviour
{
#if UNITY_EDITOR
[vFSMHelpbox("Use it to make the AI Controller chase a target * Requires a CurrentTarget *", UnityEditor.MessageType.Info)]
#endif
public class vGoToTarget : vStateAction
{
public override string categoryName
{
get { return "Movement/"; }
}
public override string defaultName
{
get { return "Chase Target"; }
}
public bool useStrafeMovement = false;
public vAIMovementSpeed speed = vAIMovementSpeed.Walking;
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate)
{
if (fsmBehaviour.aiController == null) return;
if (executionType == vFSMComponentExecutionType.OnStateEnter) fsmBehaviour.aiController.ForceUpdatePath(2f);
if (useStrafeMovement)
fsmBehaviour.aiController.StrafeMoveTo(fsmBehaviour.aiController.lastTargetPosition, fsmBehaviour.aiController.lastTargetPosition - fsmBehaviour.transform.position,speed);
else fsmBehaviour.aiController.MoveTo(fsmBehaviour.aiController.lastTargetPosition,speed);
}
}
}