【Unity】パッケージのインポートで更新されるものについて

unity-import-package

データのやり取りにgitが使えず、パッケージのエクスポート・インポートのみだった場合の更新テスト。

結果、参照を維持したまま素材自体は差し替えできるものの、命名やディレクトリは変化しないので、データの整理は反映されないなという感想

スポンサーリンク

作業データ

プロジェクトを作成し、ディレクトリを作成して画像をいれて、パッケージをエクスポートしてみます。

f:id:min0124:20180213005127p:plain

  • A、B、C、というフォルダに、A、B、Cという画像を用意してエクスポートパッケージ(Pack01)

f:id:min0124:20180213005314p:plain

  • 次にCommonというフォルダを作成し、さきほどのABCの画像を移動。他フォルダを削除してエクスポートパッケージ(Pack02)

f:id:min0124:20180213005701p:plain

  • ABCの画像の色を更新。ついでに設定も変更(Package TagをTESTと記述するなど)してエクスポートパッケージ(Pack03)
スポンサーリンク

インポート先のプロジェクト

f:id:min0124:20180213005433p:plain

  • ひとまずPack01をインポート。緑のNewバッジが付いている

f:id:min0124:20180213005544p:plain

次にPack02をインポートを試みるも、all assets from this package are already in your projectで更新する部分が無くて失敗。

f:id:min0124:20180213005903p:plain

  • Pack03を試す。更新アイコンが付き無事差し替え成功。※ただし階層はPack01のまま
スポンサーリンク

まとめ

  • 更新パッケージをインポートすると、データの設定やデータ自体は差し替えることができる。

  • 階層は変化しない。(metaファイルのguidを見て更新される)

  • ファイル名も変化しない。(ファイル名ABC以外に変更してインポートしても差し替え可能)

参考

Unity – マニュアル: アセットパッケージ

Unityのunitypackage出力について – テラシュールブログ

スポンサーリンク

階層や命名を変化させたい場合

どうしても階層や命名を変更したい場合は、修正用のスクリプト書くのが良さそうです。

AssetDatabase – Unity マニュアル

データの移動例、AssetDatabaseを使用

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class Test : MonoBehaviour {
[MenuItem("Sample/MoveAssetsToDirectory")]
private static void Example() {
AssetDatabase.MoveAsset ("Assets/A/Sample.png", "Assets/B/Sample.png");
}
}

コメント