feat(framework): 状态机与 AnimatorKit 支持读档即时恢复

This commit is contained in:
2026-06-24 22:34:57 +08:00
parent d88f794759
commit 5cae227fec
2 changed files with 79 additions and 0 deletions
@@ -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;