AlicizaX/Client/Assets/Scripts/Hotfix/GameLogic/EnemyAI.cs
2025-04-28 19:45:45 +08:00

91 lines
1.8 KiB
C#

// 状态定义
using System;
using AlicizaX;
using AlicizaX.Fsm.Runtime;
using UnityEditor;
using UnityEngine;
using UnityEngine.Profiling;
public class NavigationState : StateBase<EnemyAI.EnemyAIState>
{
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<EnemyAI.EnemyAIState>
{
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<EnemyAIState>("EnemyAI");
// fsm.Register<NavigationState>(EnemyAIState.Navi);
// fsm.SwitchState(0);
// GameApp.Fsm.Destroy(fsm);
//
// Profiler.EndSample();
Profiler.BeginSample("FSM2");
var fsm2 = GameApp.Fsm.Create<EnemyAIState>("EnemyAI2");
fsm2.Register<NavigationState>(EnemyAIState.Navi);
fsm2.Register<NavigationState2>(EnemyAIState.Navi2);
fsm2.SwitchState(0);
Profiler.EndSample();
}
}