Added Behavior Graph asset for Unity

This commit is contained in:
2026-04-28 12:35:51 +02:00
parent a3c7859b18
commit 2b213f359b
34 changed files with 5079 additions and 9 deletions
@@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
namespace BehaviorTree
{
public class Selector : Composite
{
private int _currentIndex;
private Node _currentNode;
public Selector(List<Node> _nodes)
{
nodes = _nodes;
}
public override Status Start()
{
if (nodes == null || nodes.Count == 0)
{
return Status.Failure;
}
_currentIndex = 0;
_currentNode = nodes[_currentIndex];
_currentNode.Start();
return Status.Running;
}
public override Status Update()
{
Status status = _currentNode?.Update() ?? Status.Failure;
switch (status)
{
case Status.Failure:
if (_currentNode?.End() == Status.Failure) return Status.Failure;
_currentIndex++;
if (_currentIndex >= nodes.Count) return Status.Failure;
_currentNode = nodes[_currentIndex];
if (_currentNode?.Start() == Status.Failure) return Status.Failure;
return Status.Running;
case Status.Success:
_currentNode?.End();
return Status.Success;
case Status.Running:
return Status.Running;
default:
throw new ArgumentOutOfRangeException();
}
}
}
}