跳转至

UIModuleConfigSO

  • 种类: class
  • 命名空间: Runestone.AesirModules
  • 程序集: Runestone.AesirModules

继承链: System.Object → UnityEngine.Object → UnityEngine.ScriptableObject → Sirenix.OdinInspector.SerializedScriptableObject → Runestone.AesirArchitecture.AesirScriptableObject → UIModuleConfigSO

实现接口: UnityEngine.ISerializationCallbackReceiver

声明

public class UIModuleConfigSO : Runestone.AesirArchitecture.AesirScriptableObject, 
UnityEngine.ISerializationCallbackReceiver

UI 模块全局配置(单例资产)。承载无需预放置 [UIModule] 即可调整的模块级配置: 在 Project 窗口直接编辑本资产即可生效,不再要求预放置 UIModule 物体。

备注

单例 Instance 的解析顺序: RegisterConfigLoader 注册的加载器——注册后 Resources 兜底不再执行, 用于彻底放弃 Resources 的项目(如 Addressables 或代码内构造配置); Resources 兜底(ResourcePath,编辑器在编辑模式域加载时自动创建该资产, 见编辑器程序集 UIModuleConfigAssetInitializer); 内存默认实例——前两级均未命中时以代码默认值创建,仅存在于内存、不持久化。 运行时经 MaskMode 的切换只覆盖 UIModule 的内存值,不改写本资产。

构造方法

名称 描述
UIModuleConfigSO() —

UIModuleConfigSO()

public UIModuleConfigSO()

字段

名称 描述
ResourcePath Resources 兜底路径(相对任意 Resources 根,不含扩展名)。资产固定位于 Assets/Resources/UIModuleConfig/UIModuleConfig.asset。

ResourcePath

Resources 兜底路径(相对任意 Resources 根,不含扩展名)。资产固定位于 Assets/Resources/UIModuleConfig/UIModuleConfig.asset。

public const string ResourcePath = "UIModuleConfig/UIModuleConfig";

属性

声明的属性

名称 描述
Instance 全局单例。按类 remarks 声明的顺序解析并缓存;缓存失效(资产被销毁的 Unity 假 null)时自动重新解析。

继承的属性

名称 描述 声明类型
hideFlags — Object
name — Object

Instance

全局单例。按类 remarks 声明的顺序解析并缓存;缓存失效(资产被销毁的 Unity 假 null)时自动重新解析。

public static UIModuleConfigSO Instance { get; }

方法

声明的方法

名称 描述
CreateDefault() —
RegisterConfigLoader(Func<UIModuleConfigSO>) 注册配置加载器,替代 Resources 兜底(注册后 Instance 只经加载器解析)。 须在 UIModule 首次消费配置(读取 MaskMode,其惰性解析首次访问)之前调用, 例如 [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] 或首个场景的引导脚本中。
UnregisterConfigLoader() 注销配置加载器(幂等)。注销后 Instance 重新按 Resources 兜底解析, 已按加载器路径缓存的实例一并失效。

继承的方法

名称 描述 声明类型
GetType() — object
GetInstanceID() — Object
Equals(object) — Object
GetHashCode() — Object
ToString() — Object
MemberwiseClone() — object
Finalize() — object
OnAfterDeserialize() — SerializedScriptableObject
OnBeforeSerialize() — SerializedScriptableObject
SetDirty() — ScriptableObject

CreateDefault()

public static UIModuleConfigSO CreateDefault()

返回值

类型 说明
UIModuleConfigSO —

RegisterConfigLoader(Func)

注册配置加载器,替代 Resources 兜底(注册后 Instance 只经加载器解析)。 须在 UIModule 首次消费配置(读取 MaskMode,其惰性解析首次访问)之前调用, 例如 [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] 或首个场景的引导脚本中。

public static void RegisterConfigLoader(Func<UIModuleConfigSO> loader)

参数

名称 类型 说明
loader Func<UIModuleConfigSO> 同步加载器(加载契约与 IUIAssetLoader 同为同步语义);返回 null 时按内存默认配置兜底。

UnregisterConfigLoader()

注销配置加载器(幂等)。注销后 Instance 重新按 Resources 兜底解析, 已按加载器路径缓存的实例一并失效。

public static void UnregisterConfigLoader()

Additional Notes

首个 ## Additional Notes 是增量生成文档标识符,请勿修改标题级别和内容!本文档由 Script Doc Generator 辅助生成。