CapersProject/Assets/02.Scripts/BehaviorTree/Enemy/Boss/Action/Move.cs

38 lines
1.0 KiB
C#
Raw Normal View History

2024-06-03 18:26:03 +00:00
using System;
using BehaviorDesigner.Runtime;
using BehaviorDesigner.Runtime.Tasks;
using BlueWater.Enemies.Bosses;
using Action = BehaviorDesigner.Runtime.Tasks.Action;
namespace BlueWater.BehaviorTrees.Enemies.Bosses.Actions
{
[TaskCategory("Custom/Enemy/Boss")]
[Serializable]
public class Move : Action
{
public bool UseMovePosition;
public SharedVector3 MovePosition;
public SharedCollider Target;
private Boss _boss;
public override void OnAwake()
{
_boss = transform.GetComponent<Boss>();
}
public override void OnStart()
{
var movePosition = UseMovePosition ? MovePosition.Value : Target.Value.transform.position;
_boss.Move(movePosition);
}
public override TaskStatus OnUpdate()
{
if (!_boss.HasReachedDestination()) return TaskStatus.Running;
_boss.StopMove();
return TaskStatus.Success;
}
}
}