CG・映像デザイナー技術ブログ

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

eyecatch_unity

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

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

この記事の著者
CGブロガー すいみん

CGブロガー

すいみん

Suimin

プロフィール

某美大の油絵科を卒業後、大手CG映像プロダクションに入社。
その後ゲーム業界に転職。
現在は技術系のCGデザイナーをしています。 書籍:Unity デザイナーズ・バイブル
プロフィール詳細はこちら

作業データ

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

  • 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 – マニュアル: アセットパッケージ

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");
}
}

以上、すいみん(@cg_method)でした!