Scripting API¶
本参考由 Script Doc Generator 基于 C# 反射离线生成,重新生成时自动保留各页面 ## Additional Notes 之后的手写补充。页面按字母序排列;使用左侧目录或站内搜索定位类型。
Runestone.AesirModules¶
命名空间 Runestone.AesirModules · 程序集 Runestone.AesirModules、Runestone.AesirModules.Editor.OdinInspector、Runestone.AesirModules.OdinInspector、Runestone.AesirModules.UniTask · 共 65 个类型。
类¶
| 名称 | 描述 |
|---|---|
AddressablesSupportDisabledException |
当前项目未安装 Addressables 包时访问了 Addressables 相关 API。 |
AesirBasePanel |
UI 面板基类。子类覆写生命周期虚方法,通过 Context 访问 Model/Service。 |
AesirBasePanelView<T> |
面板视图基类(MVP 模式的 View 层)。 泛型参数 T 指定面板关联的 Context 类型, Context 作为 Model 和 Service 的聚合容器,在面板与… |
AesirBasePanelViewController<T> |
面板视图控制器基类(MVC 模式的 Controller 层,兼 View 职责)。 泛型参数 T 指定面板关联的 Context 类型, Context 作为 Model 和… |
AesirBaseWindow |
Canvas 根 UI 窗口基类。窗口预制体根节点自带 Canvas(独立渲染根), 由 UIModule 实例化后直接挂载到 UIRoot 下,按 SortingOrder … |
AesirBaseWindowView<T> |
窗口视图基类(MVP 模式的 View 层,Canvas 根窗口形态)。 泛型参数 T 指定窗口关联的 Context 类型, Context 作为 Model 和 Servi… |
AesirBaseWindowViewController<T> |
窗口视图控制器基类(MVC 模式的 Controller 层兼 View 职责,Canvas 根窗口形态)。 泛型参数 T 指定窗口关联的 Context 类型, Contex… |
AesirEventArgs |
事件参数基类。所有自定义事件参数继承此类,作为事件数据载体在 EventModule 中传递。 注意:AesirEventArgs 本身不持有监听者,仅作为参数实例。 订阅管理… |
AesirEventArgsSO |
AesirEventArgs 的 ScriptableObject 包装,让事件可保存为 .asset 资源, 在 Inspector 中配置载荷并由非程序员触发。 通过 Pr… |
AesirEventUtility |
事件模块静态工具方法。 |
AesirListenerAttribute |
事件订阅者特性。标记在方法上,表示该方法监听指定类型的 AesirEventArgs。 用法示例: [AesirListener] private void OnKeyPres… |
AesirModules |
Aesir Modules 接入 MonoBehaviour 生命周期的持久化物体对象。 |
AesirModulesDebug |
— |
AudioConfigSO |
音频模块配置资产。创建路径:Assets → Create → Aesir Modules → Audio → AudioConfig。 配置默认音量、音量持久化开关与 Pla… |
AudioModule |
音频管理器(MonoBehaviour 单例)—— 2D 音频极简门面。 负责 SFX 轮询播放、BGM 循环与淡入淡出、三通道音量/静音控制与持久化。 公开 API 全部为静… |
BinderAssistant |
Object Binder 核心组件。挂载在根 UI 物体(面板或 Canvas 根窗口)上,统一配置所有要绑定的子组件并一键生成绑定脚本。 工作流程: 1. 在需要绑定引用的… |
BinderBaseTypeAttribute |
标记一个 MonoBehaviour 派生类可作为 Binder 生成脚本的基类(用户自定义基类的扩展入口)。 Aesir 面板家族(AesirBasePanel、AesirB… |
BinderCodeGenerator |
Binder 代码生成器。只做纯文本拼装与校验,不接触 Unity 对象, 由 BinderAssistant 收集场景数据后调用,便于单元测试。 |
BinderEditorSettings |
Binder 编辑器持久化设置(ScriptableSingleton):保存 partial 分部类模式的可选文件后缀列表、 默认后缀与最近使用的命名空间,供新建 Binde… |
BinderHierarchyUtility |
场景层级路径工具类,用于 Object Binder 计算物体在层级中的路径。 提供绝对路径和相对路径两种计算方式: - 绝对路径:从场景根物体到目标的完整路径,用于 Bind… |
BinderInfo |
绑定单元数据。描述一条要绑定到生成脚本字段的组件引用信息。 在 BinderAssistant 的「绑定单元列表」中以表格形式配置, 由「构建绑定单元」按子物体上的 Binde… |
BinderMenuItems |
Binder 层级右键菜单快捷入口: 为选中物体快速挂载 BinderAssistant 与 BinderTag, 免去 Add Component 菜单的层层查找。 |
BinderTag |
Binder 标签组件。挂载在需要自动绑定引用的子物体上,标记该物体可被 BinderAssistant 扫描并生成绑定信息。 一个物体上可绑定多个不同类型的组件,通过 Com… |
BindingInfo |
绑定信息基类。Attribute 订阅与 Script 订阅的共同部分。 |
DynamicBindingInfo<TEventArgs> |
Script 订阅绑定信息。通过 Action{T} 委托直接调用,无需表达式树。 |
EmptySceneAssetWrapperException |
访问了未分配任何场景的 SceneAssetWrapper。 |
EventModule |
事件模块(MonoBehaviour 单例)。 通过 [AesirListener] 特性实现 Attribute 订阅,通过 AddListener{TEventArgs}(… |
ExcludeSubclassSelectorAttribute |
排除特性。标记不想出现在 SubclassSelectorAttribute 下拉中的类型 (如抽象中间层、仅供程序内部使用的事件参数)。 |
InsideCollider2D |
仅投递给位于发布者 Collider2D 范围内的订阅者。用于空间局域广播(如爆炸半径), 订阅者位置取其 Transform.position。发布者挂多个 Collider… |
OnlySelf |
仅投递给发布者自身、其子树或其父级链上的订阅者。用于"只影响自己和亲属"的局域事件 (如组件通知所在层级,不波及场景中其他对象)。 |
ResourcesUILoader |
默认加载器:从 Resources 路径加载面板预制体。 |
SameSceneAsEmitter |
仅投递给与发布者同场景的订阅者。适配多场景叠加加载工作流, 防止持久场景中的订阅者收到临时场景的局域事件。 |
SceneAssetWrapper |
可序列化的场景引用,支持在编辑器中拖拽 SceneAsset 赋值,等价于 Eflatun.SceneReference(SceneReference 类型)+ Odin In… |
SceneAssetWrapperAddressablesBridge |
Addressables 编辑器能力的静态桥。 核心程序集不引用任何 Addressables 程序集;由可选程序集 Runestone.AesirModules.Editor… |
SceneAssetWrapperCreationException |
通过工厂或构造方法创建 SceneAssetWrapper 时入参无效。 |
SceneAssetWrapperException |
所有 SceneAssetWrapper 相关异常的基类,便于调用方统一捕获。 |
SceneModule |
场景加载与叠加管理模块(MonoBehaviour 单例)—— 公开 API 全部为静态成员,经 Instance 单例转发。 语义对齐 Unity 原生 LoadSceneM… |
SceneModuleConfigSO |
场景模块全局配置(单例资产)。承载无需预放置 [SceneModule] 即可调整的模块级配置: 在 Project 窗口直接编辑本资产即可生效,不再要求预放置 SceneMo… |
SceneModuleUniTask |
SceneModule 的 UniTask 适配 API——游戏工程包含 UniTask 时(宏 AESIR_MODULES_UNITASK 自动维护), 提供可 await … |
SceneNotAddressableException |
对非 Addressable 场景的 SceneAssetWrapper 访问了 Address。 |
StaticBindingInfo |
Attribute 订阅绑定信息。 在注册时(冷路径)通过表达式树将 MethodInfo 编译为 Action(object target, object[] args)委托… |
SubclassSelectorAttribute |
标记 [SerializeReference] 字段在 Inspector 中使用子类下拉选择器。 点击下拉按钮弹出字段声明类型的全部可选子类(按命名空间分组), 选择后自动创… |
UICanvasConfigSO |
UI Canvas 配置资产。创建路径:Assets → Create → Aesir Modules → UI → Default UICanvasConfig。 |
UIModule |
UI 管理器(MonoBehaviour 单例)。 负责面板生命周期管理,UI 根节点构建委托给 UIRoot。 |
UIModuleConfigSO |
UI 模块全局配置(单例资产)。承载无需预放置 [UIModule] 即可调整的模块级配置: 在 Project 窗口直接编辑本资产即可生效,不再要求预放置 UIModule … |
UIRoot |
UI 根节点组件。 负责创建 UICamera、EventSystem、分层 Canvas 以及应用 Canvas 统一配置。 |
UnityEventOnAesirEvent |
UnityEvent 桥接组件。监听指定类型的 AesirEventArgs, 事件触发时调用 Inspector 中配置的 UnityEvent 回调, 供非程序员在 Ins… |
WithPriority |
按优先级档位过滤。仅绑定在指定档位的订阅者收到事件, 用于"同一事件类型只通知某一档"的定向分发。 |
WithTag |
按 Unity Tag 过滤订阅者。仅 Tag 匹配的订阅者收到事件。 用法:new OnExplosion().WithFilter(new WithTag("Enemy")… |
结构体¶
| 名称 | 描述 |
|---|---|
AudioChannel |
音频通道描述符(不可变值对象)。音量/静音的存取、PlayerPrefs 持久化与配置默认值载入 均以通道列表(Channels)为唯一数据源遍历。 |
BinderCodeGenerator.BindUnit |
单个绑定单元在代码生成阶段的只读描述。 HierarchyPath 为空字符串表示绑定 BinderAssistant 所在物体自身, 生成代码将直接调用 GetCompone… |
BinderCodeGenerator.CodeGenConfig |
一次代码生成的完整配置。 |
UIRoot.LayerCanvasEntry |
层级 Canvas 的序列化引用条目。Unity 无法序列化字典,改以列表存储(条目数恒等于层数,运行时线性查找即可)。 |
接口¶
| 名称 | 描述 |
|---|---|
IComponentBinder |
绑定引用接口。由 BinderAssistant 生成的脚本实现,用于自动绑定场景中的组件引用。 生成脚本在「绑定字段(自动生成)」region 之后实现 BindCompon… |
ISubscriberFilter |
订阅者过滤器策略接口。发布者通过 WithFilter 声明过滤器, EventModule 分发时对每个订阅者逐个检查,全部过滤器通过才投递。 约定:过滤器无法解析对象(如发… |
IUIAssetLoader |
面板加载器契约。加载语义为同步:适用于 Resources、同步缓存等管线; Addressables 等异步管线需自行预加载后同步返回,无法在接口内表达等待。 |
IUIPanel |
UI 面板契约。生命周期:Initialize → Show → Hide → DestroyPanel。 |
IUIWindow |
Canvas 根 UI 窗口契约。生命周期:Initialize → Show → Hide → DestroyWindow,与 IUIPanel 平行。 窗口预制体根节点自带… |
枚举¶
| 名称 | 描述 |
|---|---|
AesirModulesDebug.Tags |
— |
BinderScriptMode |
Binder 脚本生成模式。 |
SceneAssetWrapperState |
SceneAssetWrapper 的可用状态。 Unsafe:引用不安全(空引用,或场景既不在 BuildSettings 也不可 Addressable) Regular:… |
SceneAssetWrapperUnsafeReason |
描述 SceneAssetWrapper 不安全的具体原因。 |
SubscriberPriority |
事件订阅者优先级。4 档排序:First → High → Medium → Last。 High 为 Attribute 订阅([AesirListener])默认值,Med… |
UILayer |
UI 层级。Background < Normal < Popup < Top。 |
UIMaskMode |
窗口蒙版调度模式,初始值配置于 UIModuleConfigSO(Resources 兜底资产, 编辑器自动创建),运行时可经 MaskMode 切换。 |
Runestone.AesirModules.Editor¶
命名空间 Runestone.AesirModules.Editor · 程序集 Runestone.AesirModules.Editor、Runestone.AesirModules.Editor.OdinInspector · 共 12 个类型。
类¶
| 名称 | 描述 |
|---|---|
AesirEventArgsSOEditor |
AesirEventArgsSO 自定义 Inspector: 运行模式(Play Mode)限定的事件触发按钮 + 事件参数配置字段。 |
AesirSingletonAssetInitializer |
模块配置资产(单例 ScriptableObject)的自动创建共用实现。 |
AesirUniTaskDefineKeeper |
自动维护 AESIR_MODULES_UNITASK 脚本宏定义符号——SceneModule 的 UniTask 驱动分支与 UniTask 适配程序集(Runestone.… |
AudioModuleMenuItems |
音频模块编辑器菜单项。提供在场景中预放置 AudioModule 的快捷入口。 |
BootstrapSceneHelper |
启动场景帮助类,自动查找项目中的启动场景,并将其设置为第一个加载的场景 |
SceneEditorSettings |
Scene 模块编辑器设置(ScriptableSingleton):Bootstrapper 场景搜集注册与启动流转的编辑器侧开关。 |
SceneModuleConfigAssetInitializer |
确保场景模块配置资产存在:编辑模式域加载后,Resources 兜底路径缺失且项目中无同类型资产时, 自动创建 SceneModuleConfigSO 至 Assets/Res… |
SceneModuleSettingsWindow |
Scene 模块设置窗口(原生 IMGUI 兜底):展示并编辑 SceneEditorSettings 单例。 |
SceneModuleSettingsWindowOdin |
Scene 模块设置窗口(Odin 版):InlineEditor 展示 SceneEditorSettings 单例。 |
SubclassSelectorDrawer |
SubclassSelectorAttribute 的 UI Toolkit 属性绘制器。 为 [SerializeReference] 字段提供子类下拉选择: 点击按钮弹出字… |
UIModuleConfigAssetInitializer |
确保 UI 模块配置资产存在:编辑模式域加载后,Resources 兜底路径缺失且项目中无同类型资产时, 自动创建 UIModuleConfigSO 至 Assets/Reso… |
UIModuleMenuItems |
UI 模块编辑器菜单项。提供快捷创建 UIRoot 和默认 Canvas 配置资产的入口。 |
Runestone.AesirModules.Editor.Bootstrap¶
命名空间 Runestone.AesirModules.Editor.Bootstrap · 程序集 Runestone.AesirModules.Editor.Bootstrap · 共 2 个类型。
类¶
| 名称 | 描述 |
|---|---|
AesirDependencyInstaller |
Aesir Modules 依赖补全器 —— 检测 Aesir Architecture (RAA) 缺失并经 Git URL 引导安装。 |
AesirDependencyInstaller.PackageManifest |
包 package.json 的最小解析模型(JsonUtility 忽略未声明字段)。 |
Runestone.AesirModules.Editor.OdinInspector¶
命名空间 Runestone.AesirModules.Editor.OdinInspector · 程序集 Runestone.AesirModules.Editor.OdinInspector · 共 7 个类型。
类¶
| 名称 | 描述 |
|---|---|
AesirBasePanelAttributeProcessor |
为 AesirBasePanel 提供 Odin Inspector 属性处理器, 动态注入 Inspector 显示特性,使 Runtime 程序集零 Odin 依赖。 |
AesirModulesAttributeProcessor |
为 AesirModules 提供 Odin Inspector 属性处理器, 动态注入 DDOL 开关的说明与警告信息框,使 Runtime 程序集零 Odin 依赖。 |
AudioModuleAttributeProcessor |
为 AudioModule 提供 Odin Inspector 属性处理器, 动态注入 DDOL 开关的说明信息框,使 Runtime 程序集零 Odin 依赖。 |
SceneAssetWrapperAttributeProcessor |
为 SceneAssetWrapper 提供 Odin Inspector 属性处理器, 动态注入 Inspector 显示特性,使 Runtime 程序集零 Odin 依赖。… |
UICanvasConfigSOAttributeProcessor |
为 UICanvasConfigSO 提供 Odin Inspector 属性处理器, 动态注入 Odin 专属显示特性(分组、条件显示等),使 Runtime 程序集零 Od… |
UIModuleAttributeProcessor |
为 UIModule 提供 Odin Inspector 属性处理器, 动态注入 DDOL 开关的说明与警告信息框,使 Runtime 程序集零 Odin 依赖。 |
UIRootAttributeProcessor |
为 UIRoot 提供 Odin Inspector 属性处理器, 动态注入 Inspector 显示特性,使 Runtime 程序集零 Odin 依赖。 |
Runestone.AesirModules.ScriptDocGenerator¶
命名空间 Runestone.AesirModules.ScriptDocGenerator · 程序集 Runestone.AesirModules.OdinInspector · 共 33 个类型。
类¶
| 名称 | 描述 |
|---|---|
AccessModifierTypeExtensions |
— |
ConstructorData |
构造方法解析数据 |
DefaultAnalysisDataFactory |
Aesir Modules 默认提供的解析数据工厂实现类 |
DefaultAttributeFilter |
默认特性过滤器,构造函数中传入需要排除的 Attribute 类型 |
DerivedMemberDataComparer |
IDerivedMemberData 比较类 |
EventData |
事件解析数据类,用于存储事件的解析数据 |
FieldData |
字段解析数据类,用于存储字段的解析数据 |
MemberData |
解析成员数据的基类 |
MethodData |
方法解析数据类,用于存储 MethodInfo 的解析结果 |
NiceTypeName |
类型名称格式化工具(生成文档使用的"好看名")。 |
ParameterData |
参数信息解析数据 |
PropertyData |
属性解析数据类,用于存储属性的解析数据 |
ReferenceLinkURLAttribute |
— |
ReflectionUtility |
反射工具类,提供程序集、命名空间及成员的反射操作方法 |
SourceFileEntry |
源代码文件路径与内容的绑定容器。 |
SummaryAttribute |
提供类似于 XML 文档 summary 部分的描述性元数据。 |
TypeAnalyzerStaticExtensions |
类型分析器静态扩展类,统一管理类型分析器有关的静态扩展方法 |
TypeAnalyzerUtility |
类型分析器工具类 |
TypeData |
类型解析数据类,存储类型的各种成员的解析数据 |
接口¶
| 名称 | 描述 |
|---|---|
IAnalysisDataFactory |
解析数据工厂接口,自定义扩展解析数据工厂 |
IAttributeFilter |
特性过滤器接口,用于过滤掉不需要的特性 |
IConstructorData |
构造方法数据接口,继承自 IDerivedMemberData |
IDerivedMemberData |
派生成员数据接口,不同的派生类有不同的表现形式,MemberData 无法直接准确获取的信息,需要派生类自己实现 |
IEventData |
事件数据接口,继承自 IDerivedMemberData |
IFieldData |
字段数据接口,继承自 IDerivedMemberData |
IMemberData |
成员数据接口 |
IMethodData |
方法数据接口,继承自 IDerivedMemberData |
IParameterData |
参数信息解析数据接口 |
IPropertyData |
属性数据接口,继承自 IDerivedMemberData,包含属性特有的数据信息和方法,派生类的通用数据信息和方法 |
ITypeData |
类型解析数据接口,继承自 IDerivedMemberData 接口 |
枚举¶
| 名称 | 描述 |
|---|---|
AccessModifierType |
— |
ParameterDirection |
参数方向枚举 |
TypeCategory |
类型种类枚举 |
Runestone.AesirModules.ScriptDocGenerator.Editor¶
命名空间 Runestone.AesirModules.ScriptDocGenerator.Editor · 程序集 Runestone.AesirModules.Editor.OdinInspector · 共 34 个类型。
类¶
| 名称 | 描述 |
|---|---|
DefaultScriptingAPISettingsSO |
默认中文 API 文档生成设置 |
DocGeneratorSettingsSO |
文档生成器设置抽象类 |
MemberGrouper |
成员分组引擎:Default 与 Zensical 两生成器共享的分组核心—— API 成员过滤 → 按选择器分组 → 按固定顺序(常量 → 声明 → 继承 → 运算符)输出非… |
ParsedSourceDoc |
单个源文件(或合并后的类型级视图)的结构化 XML 文档注释解析结果。 键为全限定键(无程序集前缀,合并时按需添加): 类型级 Namespace.TypeName;成员级 N… |
ProjectScriptIndex |
项目级类型声明索引:类型名 → 声明所在文件路径列表,附带 文件 → 命名空间集合。 惰性构建,每个域重载周期至多一次全项目扫描(历史实现按"每个找不到源文件的类型" 全项目扫… |
ScriptAssemblyFilter |
脚本程序集过滤器。通过 CompilationPipeline 缓存本项目的脚本程序集名集合, 用于在查找源文件前拦截引擎模块、预编译 DLL 等不可能存在项目源码的类型, 避… |
ScriptDocGenerationResult |
一次脚本文档生成调用的结果:写入的文档文件清单、使用的设置与输出根目录, 以及未能映射到编译产物的源码类型名(文件夹模式)。 |
ScriptDocGeneratorAPI |
脚本文档生成器静态 API —— 面板(Tools → Aesir → Modules → Script Doc Generator)的无 UI 等价入口, 面向自动化脚本与 … |
ScriptDocGeneratorAssetMarkerSO |
Script Doc Generator 模块资产初始化完成标识。首次初始化后创建标识资产, 后续打开工具时通过检查标识是否存在来判断是否已完成初始化。 |
ScriptDocGeneratorEditorUtility |
Script Doc Generator 的编辑器工具方法,仅供编辑器程序集内部使用。 |
ScriptDocGeneratorMenuItems |
— |
ScriptDocGeneratorMenuPaths |
Script Doc Generator 所有 MenuItem 菜单路径和优先级的统一管理。 Unity 中 MenuItem 的顺序由 priority 参数(一个整数)决… |
ScriptDocGeneratorPanelSO |
ScriptDocGenerator 可视化操作面板类 |
ScriptDocGeneratorPanelSO.ScriptDocGeneratorPanelAttributeProcessor |
— |
ScriptDocGeneratorPaths |
— |
ScriptDocGeneratorUtility |
脚本文档生成器逻辑控制类,负责处理文档生成的核心逻辑 |
ScriptDocGeneratorWindow |
脚本文档生成器窗口,直接展示 ScriptDocGeneratorSO 单面板。 |
SourceFileAnalyzerUtility |
源文件查找与成员名提取工具。 查找链路:ScriptAssemblyFilter 程序集过滤 → AssetDatabase 按名搜索 + GetClass() 验证(单遍,p… |
SourceScanner |
单遍字符级状态机源码扫描器: 第一遍净化——字符串(普通/逐字)、字符字面量、行注释、块注释内容置空,产出净化行, 使后续正则天然免疫字符串/注释里的假类型声明、假命名空间与假… |
SourceScanner.Frame |
— |
SourceScanner.SanitizerState |
— |
SourceScanner.SourceDocText |
— |
SourceSummaryInitializer |
在编辑器程序集(Runestone.AesirModules.ScriptDocGenerator.Editor)加载时注入 XML 文档注释解析器: summary / pa… |
SourceSummaryParser |
源码 XML 文档注释解析门面。实际解析由 SourceScanner 单遍状态机完成: 字符串/逐字字符串/注释感知净化 + 命名空间栈 + 类型栈,支持全限定键(含嵌套类型… |
SummaryToolMenuItems |
右键快捷处理 Summary 特性。批量处理多选脚本时仅触发一次 AssetDatabase.Refresh。 |
TypeDataProcessor |
— |
TypesCacheSO |
存储 Type 的资源文件,提供给脚本文档生成工具复用,用户无需每次重新选择 Type |
XmlCodePart |
XML 注释部分和代码块的组合。 |
XmlSummaryTool |
C# 脚本的 XML 中的 Summary 注释的处理器。 内容对齐方向(Sync/Replace):[Summary] 特性优先——已有可解析特性时以特性文本为准(必要时回写… |
ZensicalScriptingAPISettingsSO |
Zensical 静态站点专用的 API 文档生成设置 |
枚举¶
| 名称 | 描述 |
|---|---|
MemberGroup |
成员分组(文档生成共享):常量 → 声明 → 继承 → 运算符。 |
ScriptDocGeneratorPanelSO.TypeSource |
— |
XmlCodePart.SummaryAttribution |
[Summary] 特性的归属分析结果。 |
XmlSummaryTool.ProcessMode |
— |