From cdec7db14cc365c700a7037572fd28eb5eddf6d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=93=AE?= <834207172@qq.com> Date: Wed, 23 Apr 2025 20:07:51 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E3=80=90m=E3=80=91=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E7=BB=93=E6=9E=84=E4=BD=93=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runtime/Utility/FSM/FSMIState.cs | 37 +++++++++++++------ Assets/00.StaryEvo/package.json | 2 +- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs index 7746654..0044318 100644 --- a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs +++ b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs @@ -4,27 +4,31 @@ using UnityEngine; namespace Stary.Evo { - public interface FSMIState { + public interface FSMIState + { IFsmSystem FsmSystem { get; } string Name { get; } - + //进入该状态时调用 UniTask OnEnterAsync(); + + UniTask OnEnterStructAsync(T param) where T : struct; UniTask OnEnterAsync(T param); - - UniTask OnEnterAsync(T1 param1, T2 param2); + + UniTask OnEnterAsync(T1 param1, T2 param2); + //每帧调用 void OnUpdate(); //退出该状态时调用 - + UniTask OnExitAsync(); } - + public abstract class AbstractFSMIState : FSMIState { public IFsmSystem FsmSystem { get; } - public string Name { get; } + public string Name { get; } public AbstractFSMIState(IFsmSystem system) { @@ -32,17 +36,28 @@ namespace Stary.Evo Name = GetType().Name; } - public abstract UniTask OnEnterAsync(T param); + public virtual UniTask OnEnterStructAsync(T param) where T : struct + { + return UniTask.CompletedTask; + } - public abstract UniTask OnEnterAsync(T1 param1, T2 param2); + public virtual UniTask OnEnterAsync(T param) + { + return UniTask.CompletedTask; + } + + public virtual UniTask OnEnterAsync(T1 param1, T2 param2) + { + return UniTask.CompletedTask; + } public abstract UniTask OnEnterAsync(); + public virtual void OnUpdate() { // Timer += Time.deltaTime; } - public abstract UniTask OnExitAsync(); } -} +} \ No newline at end of file diff --git a/Assets/00.StaryEvo/package.json b/Assets/00.StaryEvo/package.json index ba30529..8c53f61 100644 --- a/Assets/00.StaryEvo/package.json +++ b/Assets/00.StaryEvo/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.main", - "version": "1.0.16", + "version": "1.0.17", "displayName": "00.StaryEvo", "description": "This is an Framework package", "unity": "2021.3", From 63e3c52ce4b41a9c55c44a54faa9534ebe6ab72d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=93=AE?= <834207172@qq.com> Date: Thu, 24 Apr 2025 10:17:49 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs | 4 ++-- Assets/00.StaryEvo/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs index 0044318..832c5da 100644 --- a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs +++ b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs @@ -12,7 +12,7 @@ namespace Stary.Evo //进入该状态时调用 UniTask OnEnterAsync(); - UniTask OnEnterStructAsync(T param) where T : struct; + UniTask OnEnterObjectAsync(object param); UniTask OnEnterAsync(T param); @@ -36,7 +36,7 @@ namespace Stary.Evo Name = GetType().Name; } - public virtual UniTask OnEnterStructAsync(T param) where T : struct + public virtual UniTask OnEnterObjectAsync(object param) { return UniTask.CompletedTask; } diff --git a/Assets/00.StaryEvo/package.json b/Assets/00.StaryEvo/package.json index 8c53f61..137f022 100644 --- a/Assets/00.StaryEvo/package.json +++ b/Assets/00.StaryEvo/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.main", - "version": "1.0.17", + "version": "1.0.18", "displayName": "00.StaryEvo", "description": "This is an Framework package", "unity": "2021.3", From f78a5543d19b7997ebc48aff90e4c135cbbbe0c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=93=AE?= <834207172@qq.com> Date: Thu, 24 Apr 2025 10:37:03 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=2000=20fsm=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runtime/Utility/FSM/FSMIState.cs | 4 ++-- .../Runtime/Utility/FSM/FSMISystem.cs | 18 +++++++++++++++++- Assets/00.StaryEvo/package.json | 2 +- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs index 832c5da..95c4aab 100644 --- a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs +++ b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMIState.cs @@ -12,7 +12,7 @@ namespace Stary.Evo //进入该状态时调用 UniTask OnEnterAsync(); - UniTask OnEnterObjectAsync(object param); + UniTask OnEnterAsync(object param); UniTask OnEnterAsync(T param); @@ -36,7 +36,7 @@ namespace Stary.Evo Name = GetType().Name; } - public virtual UniTask OnEnterObjectAsync(object param) + public virtual UniTask OnEnterAsync(object param) { return UniTask.CompletedTask; } diff --git a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs index 3ada609..5d95821 100644 --- a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs +++ b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs @@ -64,7 +64,23 @@ namespace Stary.Evo CurState = state; CurState.OnEnterAsync(); } + /// + /// 异步状态切换,适用于有参 + /// + /// + /// + /// + public async UniTask SetCurState(string name, object param) + { + if (CurState != null) + { + await CurState.OnExitAsync(); + } + FSMIState state = GetStateWithName(name); + CurState = state; + await CurState.OnEnterAsync(param); + } /// /// 异步状态切换,适用于有参 /// @@ -80,7 +96,7 @@ namespace Stary.Evo FSMIState state = GetStateWithName(name); CurState = state; - await CurState.OnEnterAsync(param); + await CurState.OnEnterAsync(param); } /// diff --git a/Assets/00.StaryEvo/package.json b/Assets/00.StaryEvo/package.json index 137f022..ae5274b 100644 --- a/Assets/00.StaryEvo/package.json +++ b/Assets/00.StaryEvo/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.main", - "version": "1.0.18", + "version": "1.0.19", "displayName": "00.StaryEvo", "description": "This is an Framework package", "unity": "2021.3", From 475a8a4834bb2b804f886d7f3e4c46504b7dba8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=93=AE?= <834207172@qq.com> Date: Thu, 24 Apr 2025 10:53:48 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B3=9B=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs | 2 +- Assets/00.StaryEvo/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs index 5d95821..b9715f9 100644 --- a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs +++ b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs @@ -70,7 +70,7 @@ namespace Stary.Evo /// /// /// - public async UniTask SetCurState(string name, object param) + public async UniTask SetCurState(string name, object param) { if (CurState != null) { diff --git a/Assets/00.StaryEvo/package.json b/Assets/00.StaryEvo/package.json index ae5274b..a6c4b24 100644 --- a/Assets/00.StaryEvo/package.json +++ b/Assets/00.StaryEvo/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.main", - "version": "1.0.19", + "version": "1.0.20", "displayName": "00.StaryEvo", "description": "This is an Framework package", "unity": "2021.3", From 748be761461a2b5416ca325193958d658e6fc3e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=93=AE?= <834207172@qq.com> Date: Thu, 24 Apr 2025 11:15:04 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs | 2 ++ Assets/00.StaryEvo/package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs index b9715f9..68c6ada 100644 --- a/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs +++ b/Assets/00.StaryEvo/Runtime/Utility/FSM/FSMISystem.cs @@ -10,6 +10,8 @@ namespace Stary.Evo void AddState(FSMIState state); void RemoveState(FSMIState state); UniTask SetCurState(string name); + + UniTask SetCurState(string name, object param); UniTask SetCurState(string name, T param); UniTask SetCurState(string name, T1 param1, T2 param2); FSMIState GetStateWithName(string name); diff --git a/Assets/00.StaryEvo/package.json b/Assets/00.StaryEvo/package.json index a6c4b24..7c1887b 100644 --- a/Assets/00.StaryEvo/package.json +++ b/Assets/00.StaryEvo/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.main", - "version": "1.0.20", + "version": "1.0.21", "displayName": "00.StaryEvo", "description": "This is an Framework package", "unity": "2021.3",