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