Table of Contents

Class SceneFlowSystem

Namespace
Framework.Systems.SceneFlow
Assembly
Assembly-CSharp.dll

ISceneFlowSystem 구현체. StateMachine<string> 기반 씬 전환 흐름 상태 관리.

public class SceneFlowSystem : ISceneFlowSystem
Inheritance
object
SceneFlowSystem
Implements

Examples

// PlaySceneScope.RegisterBuildCallback에서
sceneFlowSystem.RegisterFlow("Play", resolver.Resolve<PlayFlowState>());
await sceneFlowSystem.TransitionAsync("Play", ct);

Remarks

플로우 이름을 키로 IState를 등록하고, ChangeStateAsync로 비동기 전환한다. 내부적으로 ISceneSystem을 주입받아 실제 씬 로드를 각 IState(OnEnterAsync)에서 처리한다. Scope의 RegisterBuildCallback에서 RegisterFlow로 플로우를 등록한다.

Constructors

SceneFlowSystem(ISceneSystem)

public SceneFlowSystem(ISceneSystem sceneSystem)

Parameters

sceneSystem ISceneSystem

Properties

CurrentFlow

현재 활성 플로우 이름.

public string CurrentFlow { get; }

Property Value

string

Methods

Dispose()

public void Dispose()

RegisterFlow(string, IState)

IState 플로우 등록. Scope의 RegisterBuildCallback에서 호출한다.

public void RegisterFlow(string flowName, IState state)

Parameters

flowName string

플로우 식별 키.

state IState

해당 플로우의 IState 구현체.

TransitionAsync(string, CancellationToken)

대상 플로우로 비동기 전환. Exit 완료 후 Enter 실행.

public UniTask TransitionAsync(string targetFlow, CancellationToken ct = default)

Parameters

targetFlow string

전환할 플로우 이름 (SceneNames 상수 사용 권장).

ct CancellationToken

전환 취소 신호.

Returns

UniTask