22 lines
779 B
C#
22 lines
779 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace BaseGames.AI
|
|
{
|
|
/// <summary>一个状态:进入/每帧/退出钩子 + 出边转换列表(按优先级有序,首个命中即转)。</summary>
|
|
public sealed class AiState
|
|
{
|
|
readonly List<Transition> _transitions = new List<Transition>();
|
|
|
|
public string Name { get; }
|
|
public Action<IAiContext> OnEnter { get; internal set; }
|
|
public Action<IAiContext, float> OnTick { get; internal set; } // (ctx, dt)
|
|
public Action<IAiContext> OnExit { get; internal set; }
|
|
public IReadOnlyList<Transition> Transitions => _transitions;
|
|
|
|
internal void AddTransition(Transition t) => _transitions.Add(t);
|
|
|
|
public AiState(string name) => Name = name;
|
|
}
|
|
}
|