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

ScriptableSingleton<T0>

UnityEditor 中的类

/

继承自:ScriptableObject

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

描述

用于存储编辑器状态的泛型类。

ScriptableSingleton 泛型类允许您在 Unity 编辑器中创建“管理器”类型的类。在从 ScriptableSingleton 派生的类中,您添加的可序列化数据将在编辑器中保存程序集重新加载。此外,如果该类使用 FilePathAttribute,可序列化数据将在 Unity 会话之间持久保存。

using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

[FilePath("SomeSubFolder/StateFile.foo", FilePathAttribute.Location.PreferencesFolder)] public class MySingleton : ScriptableSingleton<MySingleton> { [SerializeField] float m_Number = 42;

[SerializeField] List<string> m_Strings = new List<string>();

public void Modify() { m_Number *= 2; m_Strings.Add("Foo" + m_Number);

Save(true); Debug.Log("Saved to: " + GetFilePath()); }

public void Log() { Debug.Log("MySingleton state: " + JsonUtility.ToJson(this, true)); } }

static class MySingletonMenuItems { [MenuItem("SingletonTest/Log")] static void LogMySingletonState() { MySingleton.instance.Log(); }

[MenuItem("SingletonTest/Modify")] static void ModifyMySingletonState() { MySingleton.instance.Modify(); } }

静态属性

instance获取单例的实例。当第一次访问此属性时,Unity 会创建单例实例。如果您使用 FilePathAttribute,则 Unity 也将在第一次访问时加载数据。

受保护的方法

Save保存 ScriptableSingleton 的当前状态。

静态方法

GetFilePath获取保存此 ScriptableSingleton 的文件路径。

继承的成员

属性

hideFlags对象应该隐藏、与场景一起保存还是用户可修改?
name对象的名称。

公共方法

GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

静态方法

Destroy删除一个游戏对象、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议您使用 Destroy 代替。
DontDestroyOnLoad在加载新场景时不要销毁目标对象。
FindAnyObjectByType检索任何活动加载的 Type 类型的对象。
FindFirstObjectByType检索第一个活动加载的 Type 类型的对象。
FindObjectsByType检索所有加载的 Type 类型的对象列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某些游戏对象相关联)的快照并返回 AsyncInstantiateOperation。
CreateInstance创建可脚本化对象的实例。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用以查看它们是否引用同一个对象。

消息

Awake在创建 ScriptableObject 的实例时调用。
OnDestroy当可脚本化对象将被销毁时,将调用此函数。
OnDisable当可脚本化对象超出范围时,将调用此函数。
OnEnable当对象加载时,将调用此函数。
OnValidate仅编辑器功能,当脚本加载或 Inspector 中的值发生更改时,Unity 会调用此功能。
Reset重置为默认值。