// 状态定义 using System; using AlicizaX; using AlicizaX.Fsm.Runtime; using UnityEditor; using UnityEngine; using UnityEngine.Profiling; public class NavigationState : StateBase { protected override void OnInit() { Debug.Log("Nav1初始化"); } protected override void OnEnter() { Debug.Log("Nav1进入"); } protected override void OnExit() { Debug.Log("Nav1退出"); } protected override void OnUpdate(float deltaTime) { if (Input.GetKeyDown(KeyCode.A)) { SwitchState(EnemyAI.EnemyAIState.Navi2); } } } public class NavigationState2 : StateBase { protected override void OnInit() { Debug.Log("Nav2初始化"); } protected override void OnEnter() { Debug.Log("Nav2进入"); } protected override void OnExit() { Debug.Log("Nav2退出"); } protected override void OnUpdate(float deltaTime) { if (Input.GetKeyDown(KeyCode.D)) { SwitchState(EnemyAI.EnemyAIState.Navi); } } } public class EnemyAI : MonoBehaviour { public enum EnemyAIState { Navi, Navi2 } private void Start() { // Profiler.BeginSample("FSM"); // // var fsm = GameApp.Fsm.Create("EnemyAI"); // fsm.Register(EnemyAIState.Navi); // fsm.SwitchState(0); // GameApp.Fsm.Destroy(fsm); // // Profiler.EndSample(); Profiler.BeginSample("FSM2"); var fsm2 = GameApp.Fsm.Create("EnemyAI2"); fsm2.Register(EnemyAIState.Navi); fsm2.Register(EnemyAIState.Navi2); fsm2.SwitchState(0); Profiler.EndSample(); } }