版本: Unity 6 (6000.0)
语言English
  • C#

EditorBuildSettings.AddConfigObject

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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

参数

name 对象引用以字符串格式表示的名称。此字符串名称在您的项目中必须唯一,或者必须将 overwrite 参数设置为 true。
obj 要存储的对象引用。此对象必须是持久化的,且不能为 null
overwrite 布尔参数,用于指定如果已存在具有相同名称的条目,是否要覆盖它。

返回值

void 如果对象为 null、未持久化,或者存在名称冲突且 overwrite 参数设置为 false,则抛出异常。

描述

按名称存储对配置对象的引用。该对象必须是项目中的资源,否则在编辑器重新启动或脚本重新加载时不会保存。为了避免与其他包发生名称冲突,建议名称使用命名空间限定,例如“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; } }