テラシュールブログ

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

Unityのunitypackage出力について

目次

UnityPackageについて

Unityのexport packageは便利です。unity packageはmetaファイルをそのまま継承する事ができます。

metaファイルにはファイルのGUID*1が格納されており、ファイル参照の要となっており、これを利用することでセットアップせず手軽にファイルを設定することが可能です。

その他メタファイルについての詳しい内容はUnity開発者が複数人で開発を進める上で覚えておくと幸せになる9つの事で長々と書いている通りです。

 GUIDが参照関係を自動的に解決

ファイルのGUIDが継承出来ると言う事は、例えばUnityPackage経由でファイルを更新した際にシーンからの参照がmissingにならない事を意味します。また、unitypackage経由でインポートしたパッケージは全て同一のGUIDを持つ為、対象のアセットを元に追加で更新した際も、自動的にリンクする事が可能です。

 

逆にGUIDが異なる値になるという事は、他のGUIDが異なるシーンとは互換性がない事を意味します*2。自分だけが使う分には問題はありませんが、それをさらに派生したいケースでは手順が発生し若干面倒かもしれません。

f:id:tsubaki_t1:20140728011041j:plain

その辺りはAssetStoreのアセットをオープンソースに含めたいでチラっと説明しているので、そちらも合わせてどうぞ。

ファイルが動いても参照を維持

面白いのが、GUIDが一致するならば親フォルダやパスが変化していても、更新対象を見つけ出し更新する事です。そのため、ファイルを移動して整理したケースでも概ね正しく動作します。(特別な意味を持つフォルダからの移動は注意)

逆にコレがデメリットになるケースもあります。例えば、GUIDが同一であれば対象のファイルを更新してしまう為、他のアセットが同一GUIDを持つファイルを移動していた場合インポート時に本来の場所に見つからない等が発生します。

 

派生したリソースが同一のGUIDを保つ場合も上書き更新してしまう特性があるので、元ファイルとは別に持ちたい場合は、一回GUIDをリセットしてから再度取り込むとよいでしょう。名前をFinderやExplorerで変更するとGUIDが変化します。

 関連

UnityPackageの出力方法についてはAssetのエクスポートをどうぞ。

*1:世界で一意である事を意図された2進128ビットの値

*2:正確には参照を手動で設定する必要性が出てきます