- 드로그 BT를 페이즈 전환, 부활 트리거, 가중치 근접 패턴 중심으로 재구성 - 땅 울리기 및 콤보-기본기1_3 패턴/스킬/이펙트를 추가하고 기존 평타 파생 자산을 정리 - 드로그 행동 검증용 PlayMode/Editor 테스트와 관련 런타임 상태 추적을 추가
46 lines
2.3 KiB
C#
46 lines
2.3 KiB
C#
using System;
|
|
|
|
using Unity.Behavior;
|
|
using Unity.Properties;
|
|
using UnityEngine;
|
|
|
|
namespace Colosseum.AI.BehaviorActions.Conditions
|
|
{
|
|
/// <summary>
|
|
/// 후보 패턴 중 현재 실행 가능한 패턴이 하나라도 있는지 확인합니다.
|
|
/// </summary>
|
|
[Serializable, GeneratePropertyBag]
|
|
[Condition(name: "Has Any Ready Pattern", story: "후보 패턴 중 실행 가능한 패턴이 있는가?", id: "f2c9e62a-f5ea-43c5-8e88-b94a449e7c7f")]
|
|
[NodeDescription(
|
|
name: "Has Any Ready Pattern",
|
|
story: "후보 패턴 중 실행 가능한 패턴이 있는가?",
|
|
category: "Condition/Pattern")]
|
|
public partial class HasAnyReadyPatternCondition : Unity.Behavior.Condition
|
|
{
|
|
[SerializeReference] public BlackboardVariable<BossPatternData> Pattern1;
|
|
[SerializeReference] public BlackboardVariable<float> Weight1 = new BlackboardVariable<float>(1f);
|
|
[SerializeReference] public BlackboardVariable<BossPatternData> Pattern2;
|
|
[SerializeReference] public BlackboardVariable<float> Weight2 = new BlackboardVariable<float>(1f);
|
|
[SerializeReference] public BlackboardVariable<BossPatternData> Pattern3;
|
|
[SerializeReference] public BlackboardVariable<float> Weight3 = new BlackboardVariable<float>(1f);
|
|
[SerializeReference] public BlackboardVariable<BossPatternData> Pattern4;
|
|
[SerializeReference] public BlackboardVariable<float> Weight4 = new BlackboardVariable<float>(1f);
|
|
[SerializeReference] public BlackboardVariable<BossPatternData> Pattern5;
|
|
[SerializeReference] public BlackboardVariable<float> Weight5 = new BlackboardVariable<float>(1f);
|
|
|
|
public override bool IsTrue()
|
|
{
|
|
WeightedPatternCandidate[] candidates =
|
|
{
|
|
new WeightedPatternCandidate(Pattern1?.Value, Weight1?.Value ?? 0f),
|
|
new WeightedPatternCandidate(Pattern2?.Value, Weight2?.Value ?? 0f),
|
|
new WeightedPatternCandidate(Pattern3?.Value, Weight3?.Value ?? 0f),
|
|
new WeightedPatternCandidate(Pattern4?.Value, Weight4?.Value ?? 0f),
|
|
new WeightedPatternCandidate(Pattern5?.Value, Weight5?.Value ?? 0f),
|
|
};
|
|
|
|
return WeightedPatternSelector.HasAnyReadyPattern(GameObject, candidates);
|
|
}
|
|
}
|
|
}
|