From c03e963dcc1d184490c7d2a569476724b7057d95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=93=AE?= <834207172@qq.com> Date: Tue, 15 Apr 2025 10:23:17 +0800 Subject: [PATCH] =?UTF-8?q?fsm=E7=8A=B6=E6=80=81=E6=9C=BA=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runtime/Utility/FSM/DefaultState.cs | 16 +++++----------- .../00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs | 7 +++---- .../Runtime/Utility/FSM/FSMISystem.cs | 8 ++++---- Assets/00.StaryEvo/package.json | 2 +- 4 files changed, 13 insertions(+), 20 deletions(-) diff --git a/Assets/00.StaryEvo/Runtime/Utility/FSM/DefaultState.cs b/Assets/00.StaryEvo/Runtime/Utility/FSM/DefaultState.cs index 5b0969d..b29feb7 100644 --- a/Assets/00.StaryEvo/Runtime/Utility/FSM/DefaultState.cs +++ b/Assets/00.StaryEvo/Runtime/Utility/FSM/DefaultState.cs @@ -8,22 +8,16 @@ namespace Stary.Evo { } - - public override void OnEnter() - { - - } - - public override void OnExit() - { - - } - public override UniTask OnExitAsync() { return UniTask.CompletedTask; } + public override UniTask OnEnterAsync() + { + return UniTask.CompletedTask; + } + public override UniTask OnEnterAsync(T param) { return UniTask.CompletedTask; diff --git a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs index 46fd737..7746654 100644 --- a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs +++ b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs @@ -9,7 +9,7 @@ namespace Stary.Evo string Name { get; } //进入该状态时调用 - void OnEnter(); + UniTask OnEnterAsync(); UniTask OnEnterAsync(T param); @@ -17,7 +17,6 @@ namespace Stary.Evo //每帧调用 void OnUpdate(); //退出该状态时调用 - void OnExit(); UniTask OnExitAsync(); } @@ -36,13 +35,13 @@ namespace Stary.Evo public abstract UniTask OnEnterAsync(T param); public abstract UniTask OnEnterAsync(T1 param1, T2 param2); - public abstract void OnEnter(); + public abstract UniTask OnEnterAsync(); public virtual void OnUpdate() { // Timer += Time.deltaTime; } - public abstract void OnExit(); + public abstract UniTask OnExitAsync(); } diff --git a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs index 90d3704..3ada609 100644 --- a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs +++ b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs @@ -9,7 +9,7 @@ namespace Stary.Evo FSMIState CurState { get; set; } void AddState(FSMIState state); void RemoveState(FSMIState state); - void SetCurState(string name); + UniTask SetCurState(string name); UniTask SetCurState(string name, T param); UniTask SetCurState(string name, T1 param1, T2 param2); FSMIState GetStateWithName(string name); @@ -56,13 +56,13 @@ namespace Stary.Evo /// 普通状态切换,适用于无参 /// /// - public void SetCurState(string name) + public async UniTask SetCurState(string name) { if (CurState != null) - CurState.OnExitAsync(); + await CurState.OnExitAsync(); FSMIState state = GetStateWithName(name); CurState = state; - CurState.OnEnter(); + CurState.OnEnterAsync(); } /// diff --git a/Assets/00.StaryEvo/package.json b/Assets/00.StaryEvo/package.json index e6a2d3e..5821f89 100644 --- a/Assets/00.StaryEvo/package.json +++ b/Assets/00.StaryEvo/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.main", - "version": "1.0.11", + "version": "1.0.12", "displayName": "00.StaryEvo", "description": "This is an Framework package", "unity": "2021.3",