AssetDatabase.CreateAsset
Declaration
public static void CreateAsset(Object asset, string path);Параметры
| Параметр | Описание |
|---|---|
| ассеты | Объект, используемый при создании ассета. |
| путь | Project относительный путь для нового ассета. |
Описание
Создает новый элемент в основном формате Unity.
Используйте этот метод для создания ассета в одном из собственных форматов Unity. Список собственных форматов ассета см. в Справочная информация о местных импортерах ассетов.
Вы не можете использовать этот метод для создания префаб из GameObject. Для этого используйте PrefabUtility класс. Кроме того, этим методом нельзя создавать ненативные ассеты — например, текстовые файлы или изображения.
Если ресурс уже существует в указанном пути, Unity перезапишет его новым ресурсом. Путь относится к папке проекта, например: Assets/MyStuff/hello.mat. Необходимо убедиться, что в указанном пути используется основное расширение ассета, иначе Unity сообщит об ошибке в консоли. Например, .mat для материалов, .anim для анимации, или .asset Для получения списка форматов ассетов, используемых в системе, см. Справочная информация о местных импортерах ассетов.
Важно: Этот метод нельзя использовать для создания ассетов в StreamingAssets папка (Assets/StreamingAssets). При попытке создания ассета в этой папке Unity сообщает об ошибке в консоли.
Файл ассетов может содержать несколько ассетов. После создания файла ассетов вы можете использовать AssetDatabase.AddObjectToAsset для добавления дополнительных ассетов в файл. При добавлении нескольких объектов в ассет порядок не имеет значения. Ни один объект не служит корневым ассетом.
Не используйте этот метод для создания ассетов во время импорта, например из ScriptedImporter или Postprocessor. Это может помешать процессу импорта давать последовательные (детерминистические) результаты и вызвать предупреждение в консоли. Дополнительные сведения см. в Проверка согласованности процесса импорта.
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)); } }