public enum NodeStatus
{
RUNNING = 1,
ENDED = 2
}
/// <summary>
/// 行为树节点的抽象基类
/// </summary>
public abstract class BTNode
{
private List<BTNode> _children;
public List<BTNode> children { get { return _children; } }
/// <summary>
/// 每个节点包含一个条件节点属性,若为空,视为条件为真
/// </summary>
private BTCondition condition;
public BTNode() { }
public BTNode(BTCondition condition) { this.condition = condition; }
/// <summary>
/// 检查是否包含子节点nodeToCheck
/// </summary>
/// <param name="nodeToCheck"></param>
/// <returns></returns>
public virtual bool ContainsChild(BTNode nodeToCheck)
{
if (nodeToCheck == null || _children == null) return false;
return _children.Contains(nodeToCheck);
}
/// <summary>
/// 添加子节点nodeToAdd
/// </summary>
/// <param name="nodeToAdd"></param>
public virtual void AddChild(BTNode nodeToAdd)
{
if (nodeToAdd == null) return;
if (_children == null)
_children = new List<BTNode>();
_children.Add(nodeToAdd);
}
/// <summary>
/// 移除子节点
/// </summary>
/// <param name="nodeToRemove"></param>
/// <returns></returns>
public virtual bool RemoveChild(BTNode nodeToRemove)
{
if (_children == null || nodeToRemove == null) return false;
return _children.Remove(nodeToRemove);
}
Unity行为树框架
最新推荐文章于 2023-11-14 17:11:02 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)