Files
Colosseum/Assets/_Game/Scripts/AI/BehaviorActions/Actions/ValidateTargetAction.cs

34 lines
946 B
C#

using System;
using Colosseum.Combat;
using Unity.Behavior;
using Unity.Properties;
using UnityEngine;
using Action = Unity.Behavior.Action;
/// <summary>
/// 현재 타겟이 살아 있는 유효 대상인지 확인하는 공통 체크 액션입니다.
/// </summary>
[Serializable, GeneratePropertyBag]
[NodeDescription(
name: "Validate Target",
story: "[Target] ",
category: "Action",
id: "e9ec7a3b5a5447138ecf85ab0c57b21f")]
public partial class ValidateTargetAction : Action
{
[SerializeReference]
public BlackboardVariable<GameObject> Target;
protected override Status OnStart()
{
if (Target?.Value == null || !Target.Value.activeInHierarchy)
return Status.Failure;
IDamageable damageable = Target.Value.GetComponent<IDamageable>();
return damageable != null && damageable.IsDead ? Status.Failure : Status.Success;
}
}