Параметры
asset | Объект для использования при создании актива. |
path | Путь в файловой системе для нового актива. |
Описание
Создает новый собственный ресурс Unity.
Используйте этот метод для создания собственного ресурса Unity. Нативные ресурсы создаются Unity (либо в редакторе, либо с помощью скрипта) в сериализованном формате Unity.
Если ресурс уже существует, указанный вами путь будет перезаписан новым ресурсом. Путь указан относительно папки проекта, например: "Assets/MyStuff/hello.mat".
Файл ресурса может содержать несколько ресурсов. После создания файла ресурса вы можете добавить в него дополнительные ресурсы с помощью AssetDatabase.AddObjectToAsset.
Вы не можете использовать этот метод для создания актива из GameObject. Для этого используйте класс PrefabUtility.
Имейте в виду, что если вы добавляете несколько объектов к активу, порядок добавления объектов не имеет значения. Другими словами, первый добавленный ресурс не будет особым в файле ресурсов, и нет «корневого» ресурса или объекта, к которому добавляются другие ресурсы.
Примечание. Необходимо убедиться, что указанный вами путь использует собственное расширение объекта. Например, «.mat» для материалов, «.cubemap» для кубических карт, «.GUISkin» для скинов, «.anim» для анимации и «.asset» для любых других ресурсов. Полный список нативных расширений ресурсов можно найти здесь в разделе сведений о NativeFormatImporter. Этот метод не предназначен для создания сторонних ресурсов, таких как текстовые файлы или файлы изображений.
Примечание. Вы не можете создавать ресурсы в папке потоковых ресурсов (Assets/StreamingAssets).
Этот метод сообщает об ошибке в консоли, если вы используете неправильное расширение или пытаетесь создать ресурс в папке потоковых ресурсов. Эти ошибки станут исключениями в будущем выпуске Unity.
using UnityEngine;
using UnityEditor;
public class CreateMaterialExample : MonoBehaviour
{
[MenuItem("GameObject/Create Material")]
static void CreateMaterial()
{
// Create a simple material asset
Material material = new Material(Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");
// Print the path of the created asset
Debug.Log(AssetDatabase.GetAssetPath(material));
}
}