feat(framework): 状态机与 AnimatorKit 支持读档即时恢复
This commit is contained in:
@@ -42,6 +42,18 @@ namespace AibisDream.Framework
|
||||
_curState = _createState.Invoke(state, args);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 读档恢复:跳过前一状态的 Exit,直接进入目标状态的 EnterImmediate。
|
||||
/// </summary>
|
||||
public IEnumerator SwitchStateImmediate(T nextState, string args = "")
|
||||
{
|
||||
if (_curState != null && CurState.Equals(nextState)) yield break;
|
||||
|
||||
_curState = _createState.Invoke(nextState, args);
|
||||
OnStateSwitch?.Invoke(nextState);
|
||||
yield return _curState.EnterImmediate();
|
||||
}
|
||||
|
||||
public IEnumerator QuitState()
|
||||
{
|
||||
yield return _curState?.Exit();
|
||||
@@ -55,6 +67,12 @@ namespace AibisDream.Framework
|
||||
public void SetArgs(string args) {}
|
||||
public IEnumerator Enter();
|
||||
|
||||
/// <summary>读档恢复:跳过过渡动画,直接到达终态。</summary>
|
||||
public IEnumerator EnterImmediate()
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
|
||||
public IEnumerator Exit()
|
||||
{
|
||||
yield break;
|
||||
|
||||
Reference in New Issue
Block a user