けいごのなんとか

Unityユーザーとしてのブログ。ギリギリ路線走ってます。

ビルド後にHierarchyウィンドウのツリーの開閉がすべてリセットされてしまう問題をどうにかする

ビルド後にHierarchyウィンドウのツリー状態がすべて閉じてしまう問題

以下の仕様によって起こっている問題

  • ヒエラルキーのツリー状の開閉状態はインスタンスIDで管理されている。
  • シーンファイルを開き直すとゲームオブジェクトのインスタンスIDは変更される
  • ビルド時には自動でシーンを開きながらビルドしている。ビルド後にはビルド直前のシーンを開いている状態だが、正確には再度開き直したシーン。

対策

HierarchyWindowHelper っていうの作った。

ヒエラルキーウィンドウからツリー情報を取得して、ツリー状の開閉状態がリセットされたビルド後に再度適用する。

BuildSettingsから行うビルドは制御出来ないので、「BuildPipeline.BuildPlayer」を使ってどうにか対処する。

gist.github.com