Unity の meta ファイルと guid

本日は Unity のパッケージ読み込みで一日を潰してしまいました。 Unity のプロジェクト上で扱われるリソースは Asset と呼ばれ、 実ファイルと meta ファイルの組で管理されます。

meta ファイルは実ファイルに付加的な情報を与えるものです。 guid やインスペクタで設定するような情報(リグとか)を実ファイルを編集することなく修正することができ、かしこいです。

guid は同一のファイルを識別するために利用されており、 Unity の project 内でファイルを移動しても参照が外れないのはこの仕組のおかげです。

一方で、パッケージを読み込むときなどは、この guid が悪さをすることもあり、 素直に上書きしてほしいのに、guid とバージョニングの問題で上書きしてくれなかったりする。

正直不便なことの方が多い気もする。 git でプロジェクトを管理していると、バージョニングが二重になる。