テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Unityのプレハブが更新されるタイミングについて

プレハブの更新タイミングについてメモ。

プレハブは非常に簡単に更新できる。プロジェクトビューからプレハブを選択して、インスペクターで値を変えるだけで良い。しかしここで罠があった。プレハブを更新したからといって、プレハブのファイルまで更新される訳ではないらしい。

■プレハブを更新するタイミング

プレハブを更新するタイミングは、どうやらシーンを保存したタイミングらしい。そのためシーンを保存していなければプレハブを更新したとしてもファイルが更新されない。条件的にはセーブが必須らしく編集シーン切り替えでセーブしないを選択した場合は更新されなかった

何が問題かというと、ファイルが変更されないのでプレハブの値を更新してもバージョン管理システムに反映されていなかったり、Unityエディタが落ちた時にプレハブを遺してくれなかったりする。

スクリーンショット 2012-10-01 23.53.25
上:プレハブを変更してもGIT更新リストに表示されない

ただ、シーンはマージしにくいのでセーブ強制というのも中々面倒くさい。一応、Unityエディタを(正常に)終了するタイミングでプレハブを保存してくれるのだが、一つ作業を終わらせるたびにエディター再起動とか、ちょっと勘弁願いたいレベルだ。

パっと思いついた対策はプレハブ更新用のシーンを用意しそれを更新するとかだが、果たして。

Windowsは異なる可能性があります

プレハブが更新されるタイミングは以下のとおりです。
そのため、バージョン管理システムへ渡す前に以下のいずれかを行う必要があります。

  • File > Save Project を実行する
  • シーンを保存する
  • エディターを終了させる

このいずれかを行う前にエディタが強制終了したりした場合はプレハブ情報が壊れるので、プレハブを作ってApply実行後はちゃんとSave Project するのをお勧めします。
バージョン管理へファイルを渡す前にも同文。