(client) feat:添加行为树和工作类
This commit is contained in:
38
Client/Assets/Scripts/AI/JobBase.cs
Normal file
38
Client/Assets/Scripts/AI/JobBase.cs
Normal file
@ -0,0 +1,38 @@
|
||||
using Base;
|
||||
using Unity.VisualScripting;
|
||||
|
||||
namespace AI
|
||||
{
|
||||
public abstract class JobBase
|
||||
{
|
||||
public Entity.Entity entity;
|
||||
private int timeoutTicks = 1000;
|
||||
public bool Running=>timeoutTicks > 0;
|
||||
|
||||
public virtual void StartJob(Entity.Entity target)
|
||||
{
|
||||
entity = target;
|
||||
}
|
||||
|
||||
protected abstract void UpdateJob();
|
||||
|
||||
public bool Update()
|
||||
{
|
||||
if(!Running)
|
||||
return false;
|
||||
UpdateJob();
|
||||
timeoutTicks--;
|
||||
if (timeoutTicks <= 0)
|
||||
{
|
||||
StopJob();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
public virtual void StopJob()
|
||||
{
|
||||
timeoutTicks = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user