データのやり取りにgitが使えず、パッケージのエクスポート・インポートのみだった場合の更新テスト。
結果、参照を維持したまま素材自体は差し替えできるものの、命名やディレクトリは変化しないので、データの整理は反映されないなという感想
目次
作業データ
プロジェクトを作成し、ディレクトリを作成して画像をいれて、パッケージをエクスポートしてみます。
- A、B、C、というフォルダに、A、B、Cという画像を用意してエクスポートパッケージ(Pack01)
- 次にCommonというフォルダを作成し、さきほどのABCの画像を移動。他フォルダを削除してエクスポートパッケージ(Pack02)
- ABCの画像の色を更新。ついでに設定も変更(Package TagをTESTと記述するなど)してエクスポートパッケージ(Pack03)
インポート先のプロジェクト
- ひとまずPack01をインポート。緑のNewバッジが付いている
次にPack02をインポートを試みるも、all assets from this package are already in your project
で更新する部分が無くて失敗。
- Pack03を試す。更新アイコンが付き無事差し替え成功。※ただし階層はPack01のまま
パッケージのインポートで更新されるものについてまとめ
- 更新パッケージをインポートすると、データの設定やデータ自体は差し替えることができる。
- 階層は変化しない。(metaファイルのguidを見て更新される)
- ファイル名も変化しない。(ファイル名ABC以外に変更してインポートしても差し替え可能)
Unityのunitypackage出力について – テラシュールブログ
階層や命名を変化させたい場合
どうしても階層や命名を変更したい場合は、修正用のスクリプト書くのが良さそうです。
データの移動例、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");
}
}