Объявление
public static bool TryGetConfigObject(string name, out T result);Параметры
name | Имя в строковом формате ссылки на объект конфигурации, которую нужно извлечь. |
result | Ссылка на объект конфигурации, где будет храниться возвращаемый объект. Это должен быть объект типа Object. |
Возвращает
bool Возвращает true, если ссылка на объект конфигурации найдена и тип соответствует параметру результата. Возвращает false, если запись не найдена, ссылка на объект конфигурации имеет значение null
или если запрошенный тип не соответствует сохраненному типу.
Описание
Получить ссылку на объект конфигурации по имени.
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(stringName, out data))
return data;
//If the asset file already exists, store existing config data
if (File.Exists(stringPath))
data = AssetDatabase.LoadAssetAtPath(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 FileAsset", "Assets");
//initialise config data object
data = ScriptableObject.CreateInstance();
//create new asset from data at specified path
//asset MUST be saved with the AssetDatabase before adding to EditorBuildSettingsAssetDatabase.CreateAsset(data, stringPath);
}
//add the new or loaded config object to EditorBuildSettingsEditorBuildSettings.AddConfigObject(stringName, data, false);
return data;
}
}