このページでは、 パッケージ内で定義されたアセットにアクセスしたり参照する方法を説明します。
ノート: Package Manager はパッケージ内のストリーミングアセットをサポートしていません。Addressables パッケージを代わりに使用してください。
パッケージ内で定義されたアセットを参照するには、以下のパススキームを使用します。
"Packages/<package-name>/..."
パッケージ内のアセットのパスの先頭には、Packages/ とパッケージ名 (ディスプレイ名ではありません) が配置されています。
対照的に、以下のスキームを使用してプロジェクトアセットにアクセスします。
"Assets/..."
例えば、com.unity.images-library パッケージのサブフォルダー /Example/Images 内のファイル image.png のパスは以下のとおりです。
"Packages/com.unity.images-library/Example/Images/image.png"
Packages フォルダー内の項目の絶対パスを取得するには、部分パスを Path.GetFullPath() メソッドのパラメーターとして使用します。例については、絶対パスの解決を参照してください。
パッケージ内に保存されたテクスチャをロードするには、using UnityEditor ディレクティブを必要とする LoadAssetAtPath メソッドを使用します。この例に示すように、Packages/<package-name>/ パススキームに従ってパスを指定します。
using UnityEditor;
// ...
Texture2D texture = (Texture2D)AssetDatabase.LoadAssetAtPath("Packages/com.unity.images-library/Example/Images/image.png", typeof(Texture2D));
パッケージ化されたアセットの絶対パスを取得するには、using System.IO ディレクティブを必要とする Path.GetFullPath() メソッドを使用します。
例:
using System.IO;
// ...
string absolute = Path.GetFullPath("Packages/com.unity.images-library/Example/Images/image.png");