Unity 6.3
0 онлайн 87 гостей 3 в системе
Вход

EditorBuildSettings.AddConfigObject

Declaration

public static void AddConfigObject(string name, Object obj, bool overwrite);

Параметры

Параметр Описание
имя Имя ссылки на объект в строковом формате. Это имя строки должно быть уникальным в рамках проекта или параметр overwrite должен быть установлен на true.
Объект Ссылка на объект для хранения. Этот объект должен быть персистентным, а не null.
перезапись Булевы параметры, используемые для указания того, что вы хотите перезаписать запись с тем же именем, если она уже существует.

Возвращаемое значение

void Бросает исключение, если объект является null, не персистируется, или если имеется конфликт имен и параметр overwrite установлен на false.

Описание

Хранить ссылку на конфигурационный объект по имени.

Объект должен быть ассетом в проекте, в противном случае он не будет сохранен при перезапуске редактора или перезагрузке скриптов. Чтобы избежать конфликтов имен с другими пакетами, рекомендуется, чтобы имена были ограничены пространством имен, i.e. "company.package.name".

using UnityEngine;
using UnityEditor;
using System.IO;

public class MyConfigData : ScriptableObject { public static MyConfigData GetDefault() { //name of config data object string stringName = "com.myproject.myconfigdata"; //path to Config Object and asset name string stringPath = "Assets/myconfigdata.asset"; //used to hold config data MyConfigData data = null;

//if a config data object exists with the same name, return its config data if (EditorBuildSettings.TryGetConfigObject<MyConfigData>(stringName, out data)) return data;

//If the asset file already exists, store existing config data if (File.Exists(stringPath)) data = AssetDatabase.LoadAssetAtPath<MyConfigData>(stringPath); //if no previous config data exists if (data == null) { //show save file dialog and return user selected path name stringPath = EditorUtility.SaveFilePanelInProject("New Config File", "myconfigdata", "asset", "Select Config File Asset", "Assets"); //initialise config data object data = ScriptableObject.CreateInstance<MyConfigData>(); //create new asset from data at specified path //asset MUST be saved with the AssetDatabase before adding to EditorBuildSettings AssetDatabase.CreateAsset(data, stringPath); }

//add the new or loaded config object to EditorBuildSettings EditorBuildSettings.AddConfigObject(stringName, data, false);

return data; } }