You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
986 B
C#
49 lines
986 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using CleverCrow.Fluid.BTs.Trees;
|
|
using UnityEngine;
|
|
using UnityEngine.Timeline;
|
|
|
|
namespace Game
|
|
{
|
|
public delegate IAIObject EventCallbackCreate();
|
|
|
|
public interface IAIObject
|
|
{
|
|
BehaviorTree Tree();
|
|
void Create();
|
|
void Tick();
|
|
}
|
|
|
|
public partial class AIObjectBase<T> : IAIObject where T : new()
|
|
{
|
|
private BehaviorTreeBuilder _builder;
|
|
protected BehaviorTree _tree;
|
|
|
|
public static EventCallbackCreate GetCreator()
|
|
{
|
|
return () => (IAIObject)new T();
|
|
}
|
|
|
|
public void Create()
|
|
{
|
|
_builder = new BehaviorTreeBuilder();
|
|
OnCreate();
|
|
_tree = _builder.Build();
|
|
}
|
|
|
|
protected virtual void OnCreate()
|
|
{
|
|
}
|
|
|
|
public void Tick()
|
|
{
|
|
_tree.Tick();
|
|
}
|
|
|
|
public BehaviorTree Tree()
|
|
{
|
|
return _tree;
|
|
}
|
|
}
|
|
} |