This commit is contained in:
2025-05-13 05:19:58 +03:00
parent 853edaf0b4
commit 472b2aee18
1034 changed files with 41844 additions and 0 deletions
@@ -0,0 +1,45 @@
using UnityEngine;
using System.Collections;
public enum AiParallelPolicy {
Any,
All
}
public class AiParallel : AiComposite {
public AiParallelPolicy successPolicy = AiParallelPolicy.Any;
public AiParallelPolicy failurePolicy = AiParallelPolicy.All;
protected override BehaviorStatus OnExecute(AiBlackboard blackboard) {
int failCount = 0;
int successCount = 0;
foreach (var behavior in children) {
//if (behavior.Running) {
behavior.Tick(blackboard);
//}
if (behavior.State == BehaviorStatus.Success) {
++successCount;
if (successPolicy == AiParallelPolicy.Any) {
return BehaviorStatus.Success;
}
}
else if (behavior.State == BehaviorStatus.Fail) {
++failCount;
if (failurePolicy == AiParallelPolicy.Any) {
return BehaviorStatus.Fail;
}
}
}
if (failurePolicy == AiParallelPolicy.All && failCount == children.Length) {
return BehaviorStatus.Fail;
}
if (successPolicy == AiParallelPolicy.All && successCount == children.Length) {
return BehaviorStatus.Fail;
}
return BehaviorStatus.Running;
}
}