SceneStateManager
ステート遷移機能を管理します。StateBase を継承したステートオブジェクトを SceneStateManager 階層下に配置して管理します。
namespace GarageKit
public class SceneStateManager : ManagerBase
Inheritance
SceneStateManager
-> ManagerBase -> MonoBehaviour
Inspector
Properties
member | type | description |
---|---|---|
sceneStateTable | List<SceneStateData> | ステート遷移情報テーブル |
Methods
現在のステート情報
public SceneStateData CurrentState { get; }
一つ前のステート名
public string FromStateName { get; }
ステート遷移処理中フラグ
public bool StateChanging { get; }
ステート遷移フェード処理中フラグ
public bool AsyncChangeFading { get; }
ステート初期化完了フラグ
public bool StateInitted { get; }
シーンからステートオブジェクトの取得
public T FindStateObjectOfType<T>() where T : StateBase
public StateBase FindStateObjectByName(string stateName)
初期ステートへの遷移(AppMain の Start()
から WaitForEndOfFrame()
後に呼ばれる)
public void InitState()
指定ステートへの遷移
public void ChangeState(string stateName, object context = null)
指定ステートへのフェード付き遷移
public void ChangeAsyncState(string stateName, object context = null)
Example
// 指定ステートへの遷移
AppMain.Instance.sceneStateManager.ChangeState("PLAY");
// 指定ステートへパラメータを渡してのフェード付き遷移
AppMain.Instance.sceneStateManager.ChangeAsyncState("PLAY", "param");
SceneStateData
ステート遷移情報の構造体
namespace GarageKit
[Serializable]
public class SceneStateData
Properties
member | type | description |
---|---|---|
stateName | string | ステート名 |
stateObj | StateBase | ステートオブジェクトの参照 |
asInitial | bool | 初期ステートフラグ |