かつてのUnityでは、Asset Storeからインポートした「.unitypackage形式」のアセットには、次のような管理上の課題がありました。(※1)
- リソースの出自が不明瞭: プロジェクト内にインポートされた画像やコードが、元々どのアセットに含まれていたリソースなのか、断定しにくい
- バージョンが不明瞭: プロジェクト内にあるアセットが「現在どのバージョンなのか」を公式機能で確認する手段がない
Unity 6(※2)から、Asset Storeからインポートした「.unitypackage形式」のアセットは、Package Manager Windowから、次の情報が確認できるようになりました。
- プロジェクトにインポート済みアセットの一覧
- プロジェクトにインポート済みアセットに含まれるファイルとそのパス一覧
- プロジェクトにインポート済みアセットのバージョン
Unity 6以降のUnityエディターで、「.unitypackage形式」のアセットをインポートする必要がある点に注意してください。Unity 2022 LTSなど、古いUnityでプロジェクトを作成し「.unitypackage形式」のアセットをインポートした後、そのプロジェクトをUnity 6にアップデートしても、先の情報は確認できません。
※1 とはいえ、大抵のアセットはディレクトリルートにREADMEが置いてあって「これは〇〇で、バージョンはX.Y.Z」と書いてくれている場合も多いけれど・・・
※2 厳密には Unity 2023.2 の時点でもこの機能が利用できるみたいです
次の画像は、Unity 6000.0.78f1で撮影したPackage Manager Windowのスクリーンショットです。
Package Manager WindowのIn Projectタブには、2D Animationや2D Pixel Perfectなどプロジェクト内のPackagesに加えて、Asset Storeからインポートした「.unitypackage形式」の「DOTween(HOTween v2)」が表示されています。
また、
- 「1.2.825」というアセットのバージョンが表示されていること
- Imported AssetsにDOTweenのファイル一覧が表示されていること
にも注目してください。
ところで、Asset Storeからインポートした「.unitypackage形式」アセットのバージョン情報などは、Unityプロジェクト上のどこに保存されるのでしょうか?Packages/manifest.jsonには、それらしい情報はありませんでした。どうやら、アセット内の各リソースのメタファイルに含まれているようです。
Unity 6以降でインポートした「.unitypackage形式」のアセットに含まれるファイルの「メタファイル」には、AssetOriginという名前の項目が追加されています。AssetOriginは、以下に示すような構成です。
AssetOrigin:
serializedVersion: 1
productId: 「ここに数値」
packageName:「ここにアセットの名称」
packageVersion: 「ここにアセットのバージョン」
assetPath: 「ここにメタファイルに対応するファイルのプロジェクト中のパス」
uploadId: 「ここに数値」
おそらく、Package Manager Windowは、プロジェクト中すべてのメタファイル内の「AssetOrigin」を確認して、プロジェクト内のアセットとそのバージョンを一覧化してると思われます。
Unity 6から、Asset Storeからインポートした「.unitypackage形式」のアセットは、Package Manager Windowから、次の情報が確認できるようになりました。
- プロジェクトにインポート済みアセットの一覧
- プロジェクトにインポート済みアセットに含まれるファイルとそのパス一覧
- プロジェクトにインポート済みアセットのバージョン
個人的には、非常にうれしいアップデートです。
参考・関連
