三流豆腐。

三流のゲームプログラマ。C/C++/C#/Objective-C/python/技術向上を目指します。

【Unity】SceneManagerを使用しないフロー制御

SceneManagerを使用しないフロー制御

Sceneは1つのまま、内部でフロー制御できないか試したので、ご紹介します。

Unityバージョン:Unity 2018.3.13f1

やり方

①フロー制御のManagerを作成

②フローごとのオブジェクトをPrefab化

③ManagerがフローごとにPrefabを生成

f:id:tofu_doon:20190427230817p:plain

f:id:tofu_doon:20190427231006p:plain

 

ManagerのInspectorにフローのObjectを指定。

f:id:tofu_doon:20190427231309p:plain

f:id:tofu_doon:20190427231113p:plain

 

各フローのObjectが遷移後のフローを指定します。

今回はButtonにButton用スクリプトをアタッチしてOnClick()の中で呼び出してます。

f:id:tofu_doon:20190427231611p:plain

f:id:tofu_doon:20190427231620p:plain

 

フローのEnumも用意します。

この時、Managerの中に用意すると呼び出すときにManager.EnGameFlowとなってちょっと長いので、Managerの外に定義してます。

f:id:tofu_doon:20190427231713p:plain

 

後は、ManagerのUpdateでリクエストが来たら今のフローのObjectを削除してリクエストのフローのObjectを生成します。

f:id:tofu_doon:20190427232014p:plain

これで、フロー制御することができました。

 

感想

 Sceneを跨がないので、フェードアウトの制御もしやすいと思います。

ただ、LoadSceneとこの方法どちらが早いの検証等もまだしてないので、今後やっていけたらなと思います。

問題点等ありましたら教えてくださいm(__)m