サブシーンについて5

続き。(今後追記・修正します)
見つけたのはスタック式のシーン管理です。スタック式のシーン管理とは、シーンを丸々切り替えるのではなく、前回のシーンを残しつつシーンを切り替える(ことができる)ものです。Gems5では、『メインのゲーム画面の上にメニューウィンドウをのせる時に使える』と書いてあります。例えばFPSでマップを表示するとか、オンラインゲームでチャットウィンドウを出すとかですね。


スタック式が良いと思ったのは以下の通りです。

  • シーンを組み合わせられる
  • 組み合わせによる動きが変更しやすい
  • 積んでいるシーンを意識しなくてよい
  • 前のシーンに戻るのが容易・高速

という点です。
私の今まで使用していたシーン管理方法は、シーンを一気に切り換えていたので、各シーンを行き来するときにはメモリ確保と解放を毎回していたり、メインシーンを表示しつつウィンドウをのせるとかは、ソースに力技で書くしかありませんでした。
この力技がどうしても個人的に嫌で、いい方法はないものかと考えました。それで現状落ち着いているのが、メインシーンとサブシーンを分けるやり方です。メインシーンではシーンで必要なオブジェクトなどを確保しておき、それをサブシーンで使い回す方法です。シーンの状態遷移ですね。
まだ使い始めなので、デメリットは見えてきません。(現在制作しているものに合わせた形ですからね)
説明してもわかりにくいので、次回にサンプルコードを提示します。続く。