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",