Доступ к ассетам пакета с помощью скриптов
В этом разделе объясняется, как получить доступ или ссылку на ассеты, определенные внутри пакета:
Примечание: Package Manager не поддерживает потоковые ассеты в пакетах. Используйте пакет Addressables вместо этого.
Ссылка на пути пакетов
Чтобы сослаться на ассеты, определенные внутри пакета, используйте следующую схему пути:
"Packages/<package-name>/..."
Путь ассета внутри пакета начинается с Packages/ и пакет имя (не относящиеся к имя дисплея).
В отличие от этого, доступ к ресурсам проекта осуществляется с помощью следующей схемы:
"Assets/..."
Например, путь к файлу image.png в подпапке пакета /Example/Images пакета com.unity.images-library выглядит следующим образом:
"Packages/com.unity.images-library/Example/Images/image.png"
Чтобы получить абсолютный путь к элементу в папке Packages, вы можете использовать частичный путь в качестве параметра метода Path.GetFullPath(). Для примера см. Разрешение абсолютных путей.
Загрузить текстуру внутри пакета
Чтобы загрузить Текстуру, хранящуюся внутри пакета, используйте метод LoadAssetAtPath, который требует директивы using UnityEditor. Укажите путь в соответствии со схемой пути Packages/<package-name>/, как показано в этом примере:
using UnityEditor;
// ...
Texture2D texture = (Texture2D)AssetDatabase.LoadAssetAtPath("Packages/com.unity.images-library/Example/Images/image.png", typeof(Texture2D));
Разрешение абсолютных путей
Чтобы получить абсолютный путь пакетированного ассета, используйте метод Path.GetFullPath(), для которого требуется директива using System.IO. Например:
using System.IO;
// ...
string absolute = Path.GetFullPath("Packages/com.unity.images-library/Example/Images/image.png");
Дополнительные ресурсы
- PackageInfo.name (API скриптов)
- Поиск файлов