diff --git a/CHANGELOG.md b/CHANGELOG.md index ba8d839..ac2bef9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ ## [Unrealse] +添加一个方法,可以将任意数值转为分数形式。 + +## [0.5.6] 2025-12-30 + +增加数据集合可复用对象池组件,优化列表池中部分方法的性能。 + +## [0.5.5] 2025-11-10 + +新增一种跳线用法(单例)。 + +过时: +* 弱系列脚本计划废弃,使用Xeric系列代替。 + ## [0.5.4] - 2025-10-13 新版软接口: @@ -29,7 +42,6 @@ UI库: * 修复文本包裹器中对于常规数值类型的转换太有限的问题。 * 修复 XericRectSplinePath 在添加项目后界面坍塌的问题。 - ## [0.5.3] - 2025-09-26 添加一个大顶堆数据容器XericLibrary.Runtime.Type.SpatialAlgorithm.MaxHeap diff --git a/Editor/DeconstructionStyle.dll b/Editor/DeconstructionStyle.dll index bf26503..b9f7b28 100644 Binary files a/Editor/DeconstructionStyle.dll and b/Editor/DeconstructionStyle.dll differ diff --git a/Editor/DeconstructionStyle.dll.meta b/Editor/DeconstructionStyle.dll.meta index dc9d62d..c75c2cb 100644 --- a/Editor/DeconstructionStyle.dll.meta +++ b/Editor/DeconstructionStyle.dll.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 114790f70dba8284a84b68083baa8418 +guid: bcbfe98d29b703044a524e421fcacc2a PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Editor/DeconstructionStyle.pdb b/Editor/DeconstructionStyle.pdb new file mode 100644 index 0000000..139b15a Binary files /dev/null and b/Editor/DeconstructionStyle.pdb differ diff --git a/Editor/DeconstructionStyle.pdb.meta b/Editor/DeconstructionStyle.pdb.meta index c1fa59e..0722b88 100644 --- a/Editor/DeconstructionStyle.pdb.meta +++ b/Editor/DeconstructionStyle.pdb.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e705db20b7214dc4cbfe3089b7219737 +guid: 6116f350f3c2bca4dbb63afc5febe614 DefaultImporter: externalObjects: {} userData: diff --git a/Editor/XericLibraryEditor.dll b/Editor/XericLibraryEditor.dll index 4f2bb1d..05443ac 100644 Binary files a/Editor/XericLibraryEditor.dll and b/Editor/XericLibraryEditor.dll differ diff --git a/Editor/XericLibraryEditor.dll.meta b/Editor/XericLibraryEditor.dll.meta index 65a945a..18b27e0 100644 --- a/Editor/XericLibraryEditor.dll.meta +++ b/Editor/XericLibraryEditor.dll.meta @@ -12,16 +12,52 @@ PluginImporter: validateReferences: 1 platformData: - first: - Any: + : Any second: enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 1 settings: {} - first: Editor: Editor second: enabled: 1 settings: + CPU: AnyCPU DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: x86_64 - first: Windows Store Apps: WindowsStoreApps second: diff --git a/Editor/XericLibraryEditor.pdb b/Editor/XericLibraryEditor.pdb new file mode 100644 index 0000000..758bd51 Binary files /dev/null and b/Editor/XericLibraryEditor.pdb differ diff --git a/README.md b/README.md index 8d074b6..46f1365 100644 --- a/README.md +++ b/README.md @@ -11,4 +11,52 @@ | --- | --- | --- | --- | | 2021.3.2f1 | ✔️ | ✔️ | ✔️ | | 2022.1.24f1 | ✔️ | ✔️ | ✔️ | -| 6000.0.24f1 | ✔️ | ✔️ | ✔️ | \ No newline at end of file +| 6000.0.24f1 | ✔️ | ✔️ | ✔️ | + + * 插件更名历史 + > Xeric Library + > Aetherial Deconstructionism Paradigm (XericLibrary) + > + +---- + +欢迎使用Xeric Library, 这是一个专注代码的扩展库 + + * 专注Unity成员语法, 扩展多种基本类型的数据结构的Linq语法/语法糖, 提供: 函数平滑、 多项式计算、 权重拟合、 过程分级、 工业控制、 曲线绘制、 路径设置、 对象控制、 迭代扩展、 空间变换、 独特结构、 文本格式、 类型转换、 机器编码、 开发调试、 动态生成、 几何创建、 快速池化、 导航寻路、 隔离控制、 隔离输入、 语义化委托、 反射超驰、 数学常数、 单位换算、 排序算法、 程序调用、 网络连接等快捷用法。 + + * 扩展特殊类型, 包括且不限于: 多维布尔、 样条曲线、 超级单例、 多例系统、 邻居网络、 四叉树、 字典树、 软引用封装器等。 + + * 扩展各种常用脚本: 游戏交互、 界面适配、 弱扩展、 绘制工厂、 SQL扩展。 + + * 兼容不规范程序: 针对不规范或毫无设计规则可言的代码, 提供了更多基于反射, CIL特性等底层语法的程序扩展, 以便快速实现目的: +1. 脚本没有继承单例? "超级单例"不需要声名, 也不需要修改任何原来的脚本内容, 径直调用就是单例。 +2. 数据结构字段冗余重复? "软接口" (SoftInterface) 支持快速执行反射获取和设置,方法委托,字段属性一行调用。 +3. untiy对象要遵循生命周期池化太麻烦? "联合对象池" (MacroPool.UnionSet) 直接将设定项目开放到inspector上配置,代码中只需要get和release就可以! +4. 程序UI框架和逻辑框架高度耦合无从下手? 有点麻烦, 不过菜单特性, 查找特性, 命名标记特性可以帮助你无视内容查找字段属性方法类型等内容, 直接将类传入就能程序化生成菜单界面。 +5. 驱动ui的数据量太大? 提供多种基于UI框架的数据结构虚拟化技术, 使用虚拟化拆分数据可以每次刷新的压力。 使用此功能需要安装XericUIActionVessel插件, 代码以脚本呈现,直接浏览,编写时遵循精细的工厂权能划分! +6. 喜欢函数式变成和便捷的语法糖? 插件提供多种工具类: 枚举可以使用`MacroEnum`分类和`MacroEnum`扩展; 数学, 向量, 几何, 数据结构扩展, 常见算法, 常用字符计算已经全部内嵌`MacroMath`分类; +7. 需要使用高级数据结构? 大顶堆, 四叉树, 八叉树, 字典树, 时间戳, 多段线, 贝塞尔, 多维布尔(比特矢量), 比特图, 双生哈希表, 相邻网格等内容可以直接使用。 +8. 想要立刻能够在场景中移动角色? 第一人称, 第三人称, 上帝视角已经准备就绪! +9. 厌烦复杂的按键检查逻辑? 按键宏 (MacroKey) 提供状态表处理更多按键, 可以识别短按, 长按, 双击, 连击, 拖拽, 以及它们的按下和释放状态! 且可以选择以时间, 坐标等共计4种模式触发, 支持新输入系统, 满足绝大部分场景的细分需求。 +10. 需要隐藏日志调用栈信息? XericLogger 可以减少日志输出内容。 +11. 需要更多调试信息? 提供可以和虚幻原生媲美的Gizmos调试显示功能。 +11. 担心兼容性吗? 程序主要基于2022版本开发, 向下兼容2021, 向上支持6000, 不涉及渲染管线API, 有针对webgl版本的单独构建版本, 且经过项目实战验证。 + +更多编辑器功能参考: + * 安装Xeric Blueprint Graph以获取Unity上蓝图节点功能, 并支持Xeric函数库功能。 + * 安装Xeric UI Graph以获取蓝图化UI生成功能, 使用蓝图逻辑控制UI交互, 生成逻辑, 并支持Xeric函数库功能。 + * 安装Digital Twin Tool以获取常用调试工具集。 + * 安装Nexus Frame Flow以获取工作架构流处理功能。 + * 安装Xeric Editor辅助引擎大纲美化组件、 资源垃圾处理组件、 资源缓存组件、 快速截图功能, 以及更多快捷键功能 + +需要使用编译标记启用的功能: + * XericLibrary: 通用的启用特殊功能。 + +当前插件提供编辑器功能: Deepseek AI对话。 + +需要注意: 插件内如果涉及多平台切换, 可能会提供多种自动或手动的切换方案, 或默认使用windows平台, 请注意辨别。 + +建议添加ODin插件, 便于呈现更多界面功能。 + +更多详细内容说明请翻阅README文档。 +如果发现任何问题, 包括版本兼容性, 计算错误, 调用错误, 使用问题, 都可以通过发布页Issues或其他联系方式找我获得帮助。 \ No newline at end of file diff --git a/Runtime/Deconstruction.dll b/Runtime/Deconstruction.dll index f195cae..3489a35 100644 Binary files a/Runtime/Deconstruction.dll and b/Runtime/Deconstruction.dll differ diff --git a/Runtime/Deconstruction.pdb b/Runtime/Deconstruction.pdb new file mode 100644 index 0000000..a4a7382 Binary files /dev/null and b/Runtime/Deconstruction.pdb differ diff --git a/Runtime/Deconstruction.pdb.meta b/Runtime/Deconstruction.pdb.meta index c4f8a22..8f50744 100644 --- a/Runtime/Deconstruction.pdb.meta +++ b/Runtime/Deconstruction.pdb.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c67d7ef6c97613b41b9095a945725e91 +guid: 8acde5da4f147914f835131d166274df DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/RescissionRework.dll b/Runtime/RescissionRework.dll new file mode 100644 index 0000000..a6bd13c Binary files /dev/null and b/Runtime/RescissionRework.dll differ diff --git a/Runtime/RescissionRework.dll.meta b/Runtime/RescissionRework.dll.meta new file mode 100644 index 0000000..a7831dd --- /dev/null +++ b/Runtime/RescissionRework.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 7246df1f122aac345b615cdfe123fb10 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/SerializerHelper.dll b/Runtime/SerializerHelper.dll index 6100a56..67545e8 100644 Binary files a/Runtime/SerializerHelper.dll and b/Runtime/SerializerHelper.dll differ diff --git a/Runtime/SerializerHelper.pdb b/Runtime/SerializerHelper.pdb new file mode 100644 index 0000000..96744ee Binary files /dev/null and b/Runtime/SerializerHelper.pdb differ diff --git a/Runtime/SerializerHelper.pdb.meta b/Runtime/SerializerHelper.pdb.meta index dffc3ef..6c8f9c3 100644 --- a/Runtime/SerializerHelper.pdb.meta +++ b/Runtime/SerializerHelper.pdb.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5a61f0f8f8df56c42af4507d63579616 +guid: 62d0397e1e24f0748a58f4046b547552 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/UI/MacroUI.cs b/Runtime/UI/MacroUI.cs index cc4b597..ff36130 100644 --- a/Runtime/UI/MacroUI.cs +++ b/Runtime/UI/MacroUI.cs @@ -225,8 +225,8 @@ namespace XericLibrary.Runtime.MacroLibrary if (_noInit) { + _noInit = false; Initialize(); - _noInit = false; } return toggleList; @@ -431,12 +431,13 @@ namespace XericLibrary.Runtime.MacroLibrary _nowSelectToggleIndex = i; } - // 如果不允许为空的情况下还为空,那就默认标记一个 - if (!ToggleGroup.allowSwitchOff && _nowSelectToggleIndex < 0) - SetToggleOnWithoutNotify(0); - if (_noInit) + { + // 如果不允许为空的情况下还为空,那就默认标记一个 + if (!ToggleGroup.allowSwitchOff && _nowSelectToggleIndex < 0) + SetToggleOnWithoutNotify(0); SetToggelGroupItems(); + } _mappingDirty = false; _noInit = false; diff --git a/Runtime/UI/UILineRenderer.meta b/Runtime/UI/UILineRenderer.meta new file mode 100644 index 0000000..aa01962 --- /dev/null +++ b/Runtime/UI/UILineRenderer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 579f0719bf2bbad4cbf32941bd430366 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/XericCecil.dll b/Runtime/XericCecil.dll index 96fe962..2940da6 100644 Binary files a/Runtime/XericCecil.dll and b/Runtime/XericCecil.dll differ diff --git a/Runtime/XericCecil.pdb b/Runtime/XericCecil.pdb new file mode 100644 index 0000000..dbebf3d Binary files /dev/null and b/Runtime/XericCecil.pdb differ diff --git a/Runtime/XericCecil.pdb.meta b/Runtime/XericCecil.pdb.meta index 7e2643b..672049b 100644 --- a/Runtime/XericCecil.pdb.meta +++ b/Runtime/XericCecil.pdb.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 138831b823d56714db753f3bbfcca789 +guid: 6872d3ed7dad0cd49b4e0f92ce6e95b1 DefaultImporter: externalObjects: {} userData: diff --git a/Runtime/XericLibrary.dll b/Runtime/XericLibrary.dll index f4c68fd..4fe2219 100644 Binary files a/Runtime/XericLibrary.dll and b/Runtime/XericLibrary.dll differ diff --git a/Runtime/XericLibrary.pdb b/Runtime/XericLibrary.pdb new file mode 100644 index 0000000..274876e Binary files /dev/null and b/Runtime/XericLibrary.pdb differ diff --git a/Runtime/XericLibrary.xml b/Runtime/XericLibrary.xml index b305bc5..1b677b5 100644 --- a/Runtime/XericLibrary.xml +++ b/Runtime/XericLibrary.xml @@ -1528,6 +1528,1347 @@ 超时时间(秒) + + + 配置宏 + + + + + 保存uri配置文件 + + 自行完毕状态 + + + + 读取uri配置文件 + + 自行完毕状态 + + + + 协议 + + + + + 主机名 + + + + + 最终路径,最后的斜杠会影响uri的处理 + + + + + 在列表中搜索名称,如果没找到,返回一个空字符串 + + + + + + + + 通过名称获取路径uri + + + + + + + + 处理一段路径中的占位符,将其替换为目标符号 + + + + + + + + 添加一个配置项 + + + + + + + 移除一个配置项 + + + + + + 移除一个配置项 + + + + + + 设置一个配置项 + + + + + + + 名称 + + + + + 值 + + + + + 静态类型,生成时固定类型,如果后续设置类型不同将拒绝赋值 + + + + + 是否为空,不检查值是否为空,而是置标志位 + + + + + 类型 + + + + + 调试宏,重载unity的日志输出效果 + + + + + 开始替换日志输出器 + + + + + 结束替换日志输出器 + + + + + 彩色日志 + + + + + + 彩色日志 + + + + + + 彩色警告 + + + + + + 彩色抛出 + + + + + + 彩色断言 + + + + + + 彩色错误 + + + + + + il指令分析库 + + + + + 从类上获取IL程序集 + + + + + + + 检查类上的方法是否调用了基类的类 + + + + + + + + 检查一个方法里是否通过base.调用基类的方法 + + + + + + + + + + 菜单宏 + + + + + 值为空时显示的文本 + + + + + 数值格式化格式 + + + + + 字符太长时替换样式 + + + + + 呈献值 + + + + + 值为空时显示的文本 + + + + + 数值格式化格式 + + + + + 字符太长时替换样式 + + + + + 名称及标识符 + + + + + 值处理器 + + + + + 承载对象 + + + + + 格式包裹器 + + + + + 创建一个呈现组 + + + + + + + + + + + 添加一个值 + + + + + + + + + + + + + 创建一个值 + + + + + + + + + + + + + 创建一个值 + + + + + + + + + + + + 对象计算器 + + + + + 设置值 + + + + + + + 获取值 + + + + + + + 值计算器 + + + + + + 值步骤长度 + + + + + 取整方向 + + + + + 设置值 + + + + + + 获取值 + + + + + + 设置值 + + + + + + 浮点数计算器 + + + + + 浮点数计算器 + + + + + 浮点数计算器 + + + + + 检查当前变换组件上是否发生盒体碰撞 + + + + + + + 检查当前变换组件上是否发生盒体碰撞 + + + + + + + + + 检查盒体范围是否发生碰撞(或在某个碰撞体内) + + + + + + + + + + + 检查胶囊体范围是否发生碰撞(或在某个碰撞体内) + + + + + + + + + + + 检查球体范围是否发生了碰撞(或在某个碰撞体内) + + + + + + + + + + 命令控制台面板宏 + + 脚本中将监听的命令注册到此,当用户输入时,也可以通过这里的字典进行查找。 + 命令需要有一个开启词,自动补全也仅支持开启词补全。 + 命令后的参数将会由具体目标处理。 + + + + + + 命令 + + + + + 继承中间件 + + + + + 执行命令 + + + + + 当前进程ID + + + + + 通过程序名称查询窗口句柄 + + + + + + + + 枚举窗口回调委托 + + 窗口句柄。 + 应用程序定义值。 + + + + + 通过将句柄传递到每个窗口,进而将传递给应用程序定义的回调函数,枚举屏幕上的所有顶级窗口。 + 枚举窗口 将一直持续到最后一个顶级窗口被枚举或回调函数返回 FALSE。 + + EnumWindows 函数不枚举子窗口,但系统拥有的几个具有WS_CHILD样式的顶级窗口除外。 + 此函数比在循环中调用 GetWindow 函数更可靠。 + 调用 GetWindow 以执行此任务的应用程序有被捕获到无限循环或引用已销毁窗口的句柄的风险。 + + + + 指向应用程序定义的回调函数的指针。 + 要传递给回调函数的应用程序定义值。 + 如果该函数成功,则返回真 + + + + 检索指定窗口的父级或所有者的句柄。 + 若要检索指定上级的句柄,请使用 GetAncestor 函数。 + + 如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。 + + 此函数通常由于以下原因之一而失败: + 该窗口是无所有者或没有 WS_POPUP 样式的顶级窗口。 + 所有者窗口具有 WS_POPUP 样式。 + + + + + 如果窗口是子窗口,则返回值是父窗口的句柄。 如果窗口是具有 WS_POPUP 样式的顶级窗口,则返回值是所有者窗口的句柄。 + + + + 检索创建指定窗口的线程的标识符,以及创建该窗口的进程(可选)的标识符。 + + + 窗口的句柄。 + 指向接收进程标识符的变量的指针。 如果此参数不为 NULL, 则 GetWindowThreadProcessId 会将进程的标识符复制到变量;否则,它不会。 如果函数失败,则变量的值保持不变。 + 如果函数成功,则返回值是创建窗口的线程的标识符。 如果窗口句柄无效,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。 + + + + 找到当前进程下的窗口句柄 + + + + + + 找到当前进程下的所有窗口句柄 + + 如果发生错误,返回null + + + + 所有窗口展示命令 + + + + + + 隐藏窗口并激活另一个窗口 + + + + + 激活并显示窗口。如果窗口最小化、最大化或排列,系统会将其还原到其原始大小和位置。应用程序应在首次显示窗口时指定此标志 + + + + + 同 ShowNormal + + + + + 激活窗口并将其显示未最小化窗口 + + + + + 激活窗口并显示未最大化的窗口 + + + + + 同 ShowMaximized + + + + + 以最近的大小和位置显示窗口。 此值类似于 SW_SHOWNORMAL,只是窗口未激活。 + + + + + 激活窗口并以当前大小和位置显示窗口。 + + + + + 最小化指定的窗口,并按 Z 顺序激活下一个顶级窗口。 + + + + + 将窗口显示为最小化窗口。 此值类似于 SW_SHOWMINIMIZED,但窗口未激活。 + + + + + 以当前大小和位置显示窗口。 此值类似于 SW_SHOW,只是窗口未激活。 + + + + + 激活并显示窗口。 如果窗口最小化、最大化或排列,系统会将其还原到其原始大小和位置。 还原最小化窗口时,应用程序应指定此标志。 + + + + + 根据启动应用程序的程序传递给 CreateProcess 函数的 STARTUPINFO 结构中指定的SW_值设置显示状态。 + + + + + 最小化窗口,即使拥有窗口的线程没有响应。 仅当最小化不同线程的窗口时,才应使用此标志。 + + + + + 设定窗口的显示状态 + + + 窗口句柄 + 指定窗口如何显示。如果发送应用程序的程序提供了StartUpInfo结构,则应用程序的第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。 + 如果窗口以前就可见,返回真,否则返回否 + + + + 设定窗口的显示状态,而无需等待操作完成 + + + 窗口句柄 + 指定窗口如何显示。如果发送应用程序的程序提供了StartUpInfo结构,则应用程序的第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。 + 如果操作已成功启动,则返回真 + + + + 矩形信息 + + + + + 监视器信息 + + + + + 结构体大小 + + + + + 物理分辨率和位置 + + + + + 工作区域(排除任务栏) + + + + + 标志位(如主显示器) + + + + + 设备名称 + + + + + + + 设备上下文(DC) + 剪辑区域 + + 自定义数据 + + + + + 显示器拷贝信息 + + + + + 刷新所有显示器信息 + + + 返回显示器原始信息 + + + + 消息宏 + + + + + 基础消息 + + + + + 业务消息 + + + + + + 重定向文本消息发送(一般定向到消息发送方法上) + + + + + 所有委派成员 + + + + + 无参委派成员 + + + + + 启用自动转换 + + 让委派成员更智能地通过cast函数来传播消息里的内容; + 具体来说,当消息里的内容是一个对象结构时,而输出是string类型,这时json反序列化会报错, + 但使用自动转换会尝试通过其他方法获取到里面的内容。 + + + + + + 自动调用委托 + + + + + + 一个参数的委派成员 + + + + + + 注册一个重定向消息处理,这会通过消息事件处理 + + + + + + 注册一个重定向且带有具体类型的消息处理 + + 尽管在每个委托实现的前面注册重定向会比较符合阅读习惯,但是这样会导致只能注册一个寂寞(因为在还没有任何成员注册以前,它只是一个null) + + + + + + + + + 向这里发送重定向消息 + + 由于消息很可能不是在主线程运行的,所以这里只是保存. + 需要在主线程上手动调用MainThreadProcessingMessage来处理消息 + + + + + + + 在主线程上处理消息 + + + + + 获取安全的消息,过程中发生的错误均会通过消息链路进行向上传递 + + + + + + + 将对象序列化为消息 + + + + + + + + + 发送消息的扩展 + + + + + + 发送对象的扩展 + + + + + + + + 直接获取事件名称 + + + + + + + 直接获取事件成员 + + + + 是否沉默,如果为真,则不会输出错误信息 + + + + + 直接获取事件成员 + + + + + + + + + 可以调用的目标封装 + + + + + 调用承载 + + + + + 示例方法封装 + + 目标实例 + 方法名称 + + + + 示例方法封装 + + 目标实例 + 方法名称 + 参数类型 + + + + 实例方法封装 + + 目标实例 + 方法名称 + 参数对象 + + + + 实例方法封装 + + 目标实例 + 方法名称 + + + + 实例方法封装 + + 目标实例 + 方法名称 + 参数类型 + + + + 实例方法封装 + + 目标实例 + 方法名称 + 参数对象 + + + + 调用 + + + + + + 设置参数 + + + + + 添加委托封装对象 + + + + + + 通过名称召唤委托封装 + + + + + + + 尝试通过名称召唤委托封装 + + + + + + + + 移除一个委托封装目标 + + + + + + + 对象池宏 + + + + + 对象池组件列表 + + + + + 获取对象池对应的哈希双子列表,如果此对象池已经对应了另一个数据集合,则失败 + + + + + + + + + 从对象池列表中销毁组件 + + + + + + + + + 可以直接通过 + 关于批量释放,可以使用pool + + + + + + 加入创建过程(不需要提供创建方法) + + + + + 加入获取过程(实例对象,理论索引) + + + + + 加入释放过程 + + + + + 加入销毁过程(可以执行销毁方法) + + + + + 获取一个池化对象 + + + + + + 获取一个池化对象,并获取上面的一个组件 + + + + + + + + 获取一个池化对象,并获取上面的多个组件 + + + + + + + + + + 获取一个池化对象,并获取上面的多个组件 + + + + + + + + + + + + 获取一个池化对象,并获取上面的多个组件 + + + + + + + + + + + + 获取一个池化对象,并获取上面的多个组件 + + + + + + + + + + + + 获取一个池化对象,并获取子项上的组件 + + + + + + + + 获取一个池化对象,并获取子项上的组件 + + + + + + + + 获取一个池化对象,并获取子项上的组件 + + + + + + + + 获取一个池化对象,并获取子项上的组件 + + + + + + + + 获取一个池化对象,并获取子项上的组件 + + + + + + + + 进入推迟获取区间 + + + + + 获取一个池化对象,并获取上面的一个组件 + + + + + + + + 获取一个池化对象,并获取上面的组件 + + + + + + + + 获取一个池化对象,并获取上面的组件 + + + + + + + + 获取一个池化对象,并获取上面的组件 + + + + + + + + 获取一个池化对象,并获取上面的组件 + + + + + + + + 结束当前推迟获取组件 + + + + + 径直释放一个对象 + + + + + + 将给定的对象的任意子项用于释放对象 + + + + + + 释放所有对象 + + + + + 对象径直池化(也就是说这个对象可以使用径直释放方法) + + + + + + + 通过枚举器生成伴随循环的池化实例项目 + + + + + + + + 获取所有激活的池化项目 + + + + + + 获取所有激活的池化项目上的组件 + + + + + + + 信标,用于查找 + + + + + 对象池设置 + + + + + 对象池 + + + + + 激活对象的字典 + + + + + 非激活对象的列表 + + + + + 所有激活的对象 + + + + + 激活对象与索引 + + + + + 未激活对象列表 + + + + + 初始化设置对象 + + + + + + 移动一个元素到激活列表中 + + + + + 移动一个元素到非激活列表中 + + + + + 在非激活列表中移除元素 + + + + + 检查池化对象是否有效 + + + + + + + 检查池化对象是否无效 + + + + + + + 检查对象是否池化 + + + + + + + 尝试获取当前对象的数据 + + + + + + + + 释放所有对象 + + + + + 对象池联合参数 + + + + + 对象索引 + + + + + 快速创建一个UI对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + 并且会监控创建的顺序,将其按照获取的顺序排列 + + + 对象池管理组件类型 + 预制体对象 + 对象池预设父级 + 在释放时检查对象,如果对象是刚建立的成员将会弹出报错 + 初始的池深度,这只是声名深度,并不会立刻创建对象 + 池最大深度,多余的对象将在释放时直接销毁 + 设置对象 + + + + + 快速创建一个UI对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + 并且会监控创建的顺序,将其按照获取的顺序排列。 + + + 对象池管理组件类型 + 预制体对象 + 对象池预设父级 + 如何从对象获取组件 + 如何从组件获取对象 + 额外的获取方法 + 额外的释放方法 + 在释放时检查对象,如果对象是刚建立的成员将会弹出报错 + 初始的池深度,这只是声名深度,并不会立刻创建对象 + 池最大深度,多余的对象将在释放时直接销毁 + 设置对象 + + + + + 快速创建一个对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + + + + + + + + + 快速创建一个对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + + + + + + + + + 快速创建一个对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + + + + + + + + + 快速创建一个对象池 + + 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 + + + + + + + + + 在释放时检查对象,如果对象是刚建立的成员将会弹出报错 + + + + 数学库 @@ -1591,579 +2932,6 @@ - - - 文本包裹块处理器 - - 包裹器支持通过反射进行兼容性序列化,但这样会带来一些反射开销 - 通过 compatibility 开启反射兼容。 - - 部分格式的包裹器支持通过 SetParamters 设置值。 - - - - - - 赋予结果的委托 - - - - - 启用兼容性反射检查 - - - - - 包裹器内如果包含变量,将允许SetParamters设置这个变量 - - - - - 参数化占用的名额 - - - - - 子集发生了改变 - - - - - 判断目标类型是否为事件委托 - - - - - - - - 格式化数值 - - - - - - - - 格式化颜色 - - - - - - - 尝试格式化对象为浮点数 - - - - - - - - 尝试格式化对象为枚举 - - - - - - - - - 开始文本拼接,返回文本构建器 - - - - - - 结束文本拼接,返回结果并清空构建内容 - - - - - - - 将当前包裹器内所有子包裹器序列化并拼接起来。 - - - - - - 获取当前节点下所有的包裹器 - - - - - - 获取当前节点的所有血统父级 - - - - - - 广度优先地获取对象 - - - - - - 检查自身是否被给定的所有类型包裹 - - - - - - - 检查自身是否被给定的所有类型包裹(默认认为给定的类型都是包裹器) - - - - - - - 直接设置参数,并将其设置到各个允许设置值的包裹器中 - - - - - - 设置参数 - - 参数起点索引 - 所有参数 - 返回使用了多少参数 - - - - 设置是否启用兼容性反射检查 - - - - - - - 设置是否启用变量化这个包裹器 - - - 手动设置占用变量 - - - - - 设置延迟赋值的委托事件 - - - - - - - 启动延迟赋值 - - - - - - 委托包裹器 - - - - - 反射包裹器(有子项) - - - - - 寻找成员 - - - - - - - - 设置值 - - - - - 获取值 - - - - - - 值包裹器(没有子项,计数) - - - - - 值名称(用于查找) - - - - - 值 - - - - - 值包裹器(没有子项,计数) - - - 值有两个状态,正常,超出范围(无效) - 当设置的值超出设定的范围时,如果同时开启了显示无效值的模式,那么将会显示为预设的无效名称。 - - - - - 值名称(用于查找) - - - - - 值 - - - - - 最小值 - - - - - 最大值 - - - - - 格式化文本 - - - - - 启用无效值 - - - - - 值无效 - - - - - 无效时展示 - - - - - 值包裹器 - - - - - - - - - - - - 日期时间包裹器 - - - - - 值名称(用于查找) - - - - - 值 - - - - - 最小值 - - - - - 最大值 - - - - - 格式化文本 - - - - - 启用无效值 - - - - - 值无效 - - - - - 无效时展示 - - - - - 值包裹器 - - - - - - - - - - - - 值表达式包裹器(没有子项,不计数) - - - - - 工作模式 - - - - - 自定义状态 - - - - - 暂存 - - - - - 总和 - - - - - 总差 - - - - - 平均值 - - - - - 最大值 - - - - - 最小值 - - - - - 自定义 - - - - - 创建值表达式 - - - - - - - 条件包裹器 - - - - - 设置参数 - - 参数起点索引 - 所有参数 - 返回使用了多少参数 - - - - 对齐 - - - - - 对齐 - - - - - 颜色 - - - - - 粗体 - - - - - 斜体 - - - - - 间距(一段文本的整体字符间距) - - - - - 字体 - - - - - - - 字体资源是必要的 - 如若不需要材质资源,填null即可 - - - - - 行高 - - - - - 行缩进 - - - - - 链接 - - - - - 小写 - - - - - 大写 - - - - - 小型大写字母 - - - - - 边缘 - - - - - - - 设置为负来取消这类标签 - 设置为负来取消这类标签 - 设置为负来取消这类标签 - - - - - 马克(背景颜色,或者说前景?因为马克在文本之上) - - - - - 字符间距,设置为给定等宽距离(单个字符调整左右边距) - - - - - 阻止解析标签 - - - - - 不间断空格,让单词保持在一起,而不是被自动换行分隔 - - - - - 分页符(必须将 text 对象设置为 page overflow 模式才能正常工作) - - - - - 水平位置 - - - - - 字体大小 - - - - - 水平间隔(在位置中插入间隔) - - - - - 精灵 - - - - - 删除线 - - - - - 下划线 - - - - - 样式 - - - - - 上标 - - - - - 下标 - - - - - 垂直间隔 - - - - - 文本宽度 - - - - - 富文本单位模式 - - 转换弧度到角度 @@ -2931,15 +3699,6 @@ 内插语法,表示此foreachdo不会作为执行器运行,而是作为其中一步执行 返回值可能是有效的,根据是否启用内插来判断 - - - 重复对象 - - - - - - 重复枚举器中的每个对象 @@ -4917,6 +5676,500 @@ + + + 文本包裹块处理器 + + 包裹器支持通过反射进行兼容性序列化,但这样会带来一些反射开销 + 通过 compatibility 开启反射兼容。 + + 部分格式的包裹器支持通过 SetParamters 设置值。 + + + + + + 启用兼容性反射检查 + + + + + 包裹器内如果包含变量,将允许SetParamters设置这个变量 + + + + + 参数化占用的名额 + + + + + 判断目标类型是否为事件委托 + + + + + + + + 格式化数值 + + + + + + + + 格式化颜色 + + + + + + + 尝试格式化对象为浮点数 + + + + + + + + 尝试格式化对象为枚举 + + + + + + + + + 开始文本拼接,返回文本构建器 + + + + + + 结束文本拼接,返回结果并清空构建内容 + + + + + + + 将当前包裹器内所有子包裹器序列化并拼接起来。 + + + + + + 获取当前节点下所有的包裹器 + + + + + + 获取当前节点的所有血统父级 + + + + + + 广度优先地获取对象 + + + + + + 检查自身是否被给定的所有类型包裹 + + + + + + + 检查自身是否被给定的所有类型包裹(默认认为给定的类型都是包裹器) + + + + + + + 直接设置参数,并将其设置到各个允许设置值的包裹器中 + + + + + + 设置参数 + + 参数起点索引 + 所有参数 + 返回使用了多少参数 + + + + 设置是否启用兼容性反射检查 + + + + + + + 设置是否启用变量化这个包裹器 + + + 手动设置占用变量 + + + + + 委托包裹器 + + + + + 反射包裹器(有子项) + + + + + 寻找成员 + + + + + + + + 设置值 + + + + + 获取值 + + + + + + 值包裹器(没有子项,计数) + + + + + 值名称(用于查找) + + + + + 值 + + + + + 其他参数 + + + + + 值包裹器(没有子项,计数) + + + + + 值名称(用于查找) + + + + + 值 + + + + + 最小值 + + + + + 最大值 + + + + + 格式化文本 + + + + + 启用无效值 + + + + + 值无效 + + + + + 无效时展示 + + + + + 值包裹器 + + + + + + + + + + + + 值表达式包裹器(没有子项,不计数) + + + + + 工作模式 + + + + + 自定义状态 + + + + + 暂存 + + + + + 总和 + + + + + 总差 + + + + + 平均值 + + + + + 最大值 + + + + + 最小值 + + + + + 自定义 + + + + + 创建值表达式 + + + + + + + 条件包裹器 + + + + + 设置参数 + + 参数起点索引 + 所有参数 + 返回使用了多少参数 + + + + 对齐 + + + + + 对齐 + + + + + 颜色 + + + + + 粗体 + + + + + 斜体 + + + + + 间距 + + + + + 字体 + + + + + + + 字体资源是必要的 + 如若不需要材质资源,填null即可 + + + + + 行高 + + + + + 行缩进 + + + + + 链接 + + + + + 小写 + + + + + 大写 + + + + + 小型大写字母 + + + + + 边缘 + + + + + + + 设置为负来取消这类标签 + 设置为负来取消这类标签 + 设置为负来取消这类标签 + + + + + 马克(背景颜色,或者说前景?因为马克在文本之上) + + + + + 字符间距,设置为给定等宽距离 + + + + + 阻止解析标签 + + + + + 不间断空格,让单词保持在一起,而不是被自动换行分隔 + + + + + 分页符(必须将 text 对象设置为 page overflow 模式才能正常工作) + + + + + 水平位置 + + + + + 字体大小 + + + + + 水平间隔 + + + + + 精灵 + + + + + 删除线 + + + + + 下划线 + + + + + 链接 + + + + + 上标 + + + + + 下标 + + + + + 垂直间隔 + + + + + 文本宽度 + + + + + 富文本单位模式 + + 将一个数值四舍五入后转为一个文本,并保留特定的小数点位,如果这个小数位为0则省略不写 @@ -5638,1347 +6891,6 @@ - - - 配置宏 - - - - - 保存uri配置文件 - - 自行完毕状态 - - - - 读取uri配置文件 - - 自行完毕状态 - - - - 协议 - - - - - 主机名 - - - - - 最终路径,最后的斜杠会影响uri的处理 - - - - - 在列表中搜索名称,如果没找到,返回一个空字符串 - - - - - - - - 通过名称获取路径uri - - - - - - - - 处理一段路径中的占位符,将其替换为目标符号 - - - - - - - - 添加一个配置项 - - - - - - - 移除一个配置项 - - - - - - 移除一个配置项 - - - - - - 设置一个配置项 - - - - - - - 名称 - - - - - 值 - - - - - 静态类型,生成时固定类型,如果后续设置类型不同将拒绝赋值 - - - - - 是否为空,不检查值是否为空,而是置标志位 - - - - - 类型 - - - - - 调试宏,重载unity的日志输出效果 - - - - - 开始替换日志输出器 - - - - - 结束替换日志输出器 - - - - - 彩色日志 - - - - - - 彩色日志 - - - - - - 彩色警告 - - - - - - 彩色抛出 - - - - - - 彩色断言 - - - - - - 彩色错误 - - - - - - il指令分析库 - - - - - 从类上获取IL程序集 - - - - - - - 检查类上的方法是否调用了基类的类 - - - - - - - - 检查一个方法里是否通过base.调用基类的方法 - - - - - - - - - - 菜单宏 - - - - - 值为空时显示的文本 - - - - - 数值格式化格式 - - - - - 字符太长时替换样式 - - - - - 呈献值 - - - - - 值为空时显示的文本 - - - - - 数值格式化格式 - - - - - 字符太长时替换样式 - - - - - 名称及标识符 - - - - - 值处理器 - - - - - 承载对象 - - - - - 格式包裹器 - - - - - 创建一个呈现组 - - - - - - - - - - - 添加一个值 - - - - - - - - - - - - - 创建一个值 - - - - - - - - - - - - - 创建一个值 - - - - - - - - - - - - 对象计算器 - - - - - 设置值 - - - - - - - 获取值 - - - - - - - 值计算器 - - - - - - 值步骤长度 - - - - - 取整方向 - - - - - 设置值 - - - - - - 获取值 - - - - - - 设置值 - - - - - - 浮点数计算器 - - - - - 浮点数计算器 - - - - - 浮点数计算器 - - - - - 检查当前变换组件上是否发生盒体碰撞 - - - - - - - 检查当前变换组件上是否发生盒体碰撞 - - - - - - - - - 检查盒体范围是否发生碰撞(或在某个碰撞体内) - - - - - - - - - - - 检查胶囊体范围是否发生碰撞(或在某个碰撞体内) - - - - - - - - - - - 检查球体范围是否发生了碰撞(或在某个碰撞体内) - - - - - - - - - - 命令控制台面板宏 - - 脚本中将监听的命令注册到此,当用户输入时,也可以通过这里的字典进行查找。 - 命令需要有一个开启词,自动补全也仅支持开启词补全。 - 命令后的参数将会由具体目标处理。 - - - - - - 命令 - - - - - 继承中间件 - - - - - 执行命令 - - - - - 当前进程ID - - - - - 通过程序名称查询窗口句柄 - - - - - - - - 枚举窗口回调委托 - - 窗口句柄。 - 应用程序定义值。 - - - - - 通过将句柄传递到每个窗口,进而将传递给应用程序定义的回调函数,枚举屏幕上的所有顶级窗口。 - 枚举窗口 将一直持续到最后一个顶级窗口被枚举或回调函数返回 FALSE。 - - EnumWindows 函数不枚举子窗口,但系统拥有的几个具有WS_CHILD样式的顶级窗口除外。 - 此函数比在循环中调用 GetWindow 函数更可靠。 - 调用 GetWindow 以执行此任务的应用程序有被捕获到无限循环或引用已销毁窗口的句柄的风险。 - - - - 指向应用程序定义的回调函数的指针。 - 要传递给回调函数的应用程序定义值。 - 如果该函数成功,则返回真 - - - - 检索指定窗口的父级或所有者的句柄。 - 若要检索指定上级的句柄,请使用 GetAncestor 函数。 - - 如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。 - - 此函数通常由于以下原因之一而失败: - 该窗口是无所有者或没有 WS_POPUP 样式的顶级窗口。 - 所有者窗口具有 WS_POPUP 样式。 - - - - - 如果窗口是子窗口,则返回值是父窗口的句柄。 如果窗口是具有 WS_POPUP 样式的顶级窗口,则返回值是所有者窗口的句柄。 - - - - 检索创建指定窗口的线程的标识符,以及创建该窗口的进程(可选)的标识符。 - - - 窗口的句柄。 - 指向接收进程标识符的变量的指针。 如果此参数不为 NULL, 则 GetWindowThreadProcessId 会将进程的标识符复制到变量;否则,它不会。 如果函数失败,则变量的值保持不变。 - 如果函数成功,则返回值是创建窗口的线程的标识符。 如果窗口句柄无效,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。 - - - - 找到当前进程下的窗口句柄 - - - - - - 找到当前进程下的所有窗口句柄 - - 如果发生错误,返回null - - - - 所有窗口展示命令 - - - - - - 隐藏窗口并激活另一个窗口 - - - - - 激活并显示窗口。如果窗口最小化、最大化或排列,系统会将其还原到其原始大小和位置。应用程序应在首次显示窗口时指定此标志 - - - - - 同 ShowNormal - - - - - 激活窗口并将其显示未最小化窗口 - - - - - 激活窗口并显示未最大化的窗口 - - - - - 同 ShowMaximized - - - - - 以最近的大小和位置显示窗口。 此值类似于 SW_SHOWNORMAL,只是窗口未激活。 - - - - - 激活窗口并以当前大小和位置显示窗口。 - - - - - 最小化指定的窗口,并按 Z 顺序激活下一个顶级窗口。 - - - - - 将窗口显示为最小化窗口。 此值类似于 SW_SHOWMINIMIZED,但窗口未激活。 - - - - - 以当前大小和位置显示窗口。 此值类似于 SW_SHOW,只是窗口未激活。 - - - - - 激活并显示窗口。 如果窗口最小化、最大化或排列,系统会将其还原到其原始大小和位置。 还原最小化窗口时,应用程序应指定此标志。 - - - - - 根据启动应用程序的程序传递给 CreateProcess 函数的 STARTUPINFO 结构中指定的SW_值设置显示状态。 - - - - - 最小化窗口,即使拥有窗口的线程没有响应。 仅当最小化不同线程的窗口时,才应使用此标志。 - - - - - 设定窗口的显示状态 - - - 窗口句柄 - 指定窗口如何显示。如果发送应用程序的程序提供了StartUpInfo结构,则应用程序的第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。 - 如果窗口以前就可见,返回真,否则返回否 - - - - 设定窗口的显示状态,而无需等待操作完成 - - - 窗口句柄 - 指定窗口如何显示。如果发送应用程序的程序提供了StartUpInfo结构,则应用程序的第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。 - 如果操作已成功启动,则返回真 - - - - 矩形信息 - - - - - 监视器信息 - - - - - 结构体大小 - - - - - 物理分辨率和位置 - - - - - 工作区域(排除任务栏) - - - - - 标志位(如主显示器) - - - - - 设备名称 - - - - - - - 设备上下文(DC) - 剪辑区域 - - 自定义数据 - - - - - 显示器拷贝信息 - - - - - 刷新所有显示器信息 - - - 返回显示器原始信息 - - - - 消息宏 - - - - - 基础消息 - - - - - 业务消息 - - - - - - 重定向文本消息发送(一般定向到消息发送方法上) - - - - - 所有委派成员 - - - - - 无参委派成员 - - - - - 启用自动转换 - - 让委派成员更智能地通过cast函数来传播消息里的内容; - 具体来说,当消息里的内容是一个对象结构时,而输出是string类型,这时json反序列化会报错, - 但使用自动转换会尝试通过其他方法获取到里面的内容。 - - - - - - 自动调用委托 - - - - - - 一个参数的委派成员 - - - - - - 注册一个重定向消息处理,这会通过消息事件处理 - - - - - - 注册一个重定向且带有具体类型的消息处理 - - 尽管在每个委托实现的前面注册重定向会比较符合阅读习惯,但是这样会导致只能注册一个寂寞(因为在还没有任何成员注册以前,它只是一个null) - - - - - - - - - 向这里发送重定向消息 - - 由于消息很可能不是在主线程运行的,所以这里只是保存. - 需要在主线程上手动调用MainThreadProcessingMessage来处理消息 - - - - - - - 在主线程上处理消息 - - - - - 获取安全的消息,过程中发生的错误均会通过消息链路进行向上传递 - - - - - - - 将对象序列化为消息 - - - - - - - - - 发送消息的扩展 - - - - - - 发送对象的扩展 - - - - - - - - 直接获取事件名称 - - - - - - - 直接获取事件成员 - - - - 是否沉默,如果为真,则不会输出错误信息 - - - - - 直接获取事件成员 - - - - - - - - - 可以调用的目标封装 - - - - - 调用承载 - - - - - 示例方法封装 - - 目标实例 - 方法名称 - - - - 示例方法封装 - - 目标实例 - 方法名称 - 参数类型 - - - - 实例方法封装 - - 目标实例 - 方法名称 - 参数对象 - - - - 实例方法封装 - - 目标实例 - 方法名称 - - - - 实例方法封装 - - 目标实例 - 方法名称 - 参数类型 - - - - 实例方法封装 - - 目标实例 - 方法名称 - 参数对象 - - - - 调用 - - - - - - 设置参数 - - - - - 添加委托封装对象 - - - - - - 通过名称召唤委托封装 - - - - - - - 尝试通过名称召唤委托封装 - - - - - - - - 移除一个委托封装目标 - - - - - - - 对象池宏 - - - - - 对象池组件列表 - - - - - 获取对象池对应的哈希双子列表,如果此对象池已经对应了另一个数据集合,则失败 - - - - - - - - - 从对象池列表中销毁组件 - - - - - - - - - 可以直接通过 - 关于批量释放,可以使用pool - - - - - - 加入创建过程(不需要提供创建方法) - - - - - 加入获取过程(实例对象,理论索引) - - - - - 加入释放过程 - - - - - 加入销毁过程(可以执行销毁方法) - - - - - 获取一个池化对象 - - - - - - 获取一个池化对象,并获取上面的一个组件 - - - - - - - - 获取一个池化对象,并获取上面的多个组件 - - - - - - - - - - 获取一个池化对象,并获取上面的多个组件 - - - - - - - - - - - - 获取一个池化对象,并获取上面的多个组件 - - - - - - - - - - - - 获取一个池化对象,并获取上面的多个组件 - - - - - - - - - - - - 获取一个池化对象,并获取子项上的组件 - - - - - - - - 获取一个池化对象,并获取子项上的组件 - - - - - - - - 获取一个池化对象,并获取子项上的组件 - - - - - - - - 获取一个池化对象,并获取子项上的组件 - - - - - - - - 获取一个池化对象,并获取子项上的组件 - - - - - - - - 进入推迟获取区间 - - - - - 获取一个池化对象,并获取上面的一个组件 - - - - - - - - 获取一个池化对象,并获取上面的组件 - - - - - - - - 获取一个池化对象,并获取上面的组件 - - - - - - - - 获取一个池化对象,并获取上面的组件 - - - - - - - - 获取一个池化对象,并获取上面的组件 - - - - - - - - 结束当前推迟获取组件 - - - - - 径直释放一个对象 - - - - - - 将给定的对象的任意子项用于释放对象 - - - - - - 释放所有对象 - - - - - 对象径直池化(也就是说这个对象可以使用径直释放方法) - - - - - - - 通过枚举器生成伴随循环的池化实例项目 - - - - - - - - 获取所有激活的池化项目 - - - - - - 获取所有激活的池化项目上的组件 - - - - - - - 信标,用于查找 - - - - - 对象池设置 - - - - - 对象池 - - - - - 激活对象的字典 - - - - - 非激活对象的列表 - - - - - 所有激活的对象 - - - - - 激活对象与索引 - - - - - 未激活对象列表 - - - - - 初始化设置对象 - - - - - - 移动一个元素到激活列表中 - - - - - 移动一个元素到非激活列表中 - - - - - 在非激活列表中移除元素 - - - - - 检查池化对象是否有效 - - - - - - - 检查池化对象是否无效 - - - - - - - 检查对象是否池化 - - - - - - - 尝试获取当前对象的数据 - - - - - - - - 释放所有对象 - - - - - 对象池联合参数 - - - - - 对象索引 - - - - - 快速创建一个UI对象池 - - 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 - 并且会监控创建的顺序,将其按照获取的顺序排列 - - - 对象池管理组件类型 - 预制体对象 - 对象池预设父级 - 在释放时检查对象,如果对象是刚建立的成员将会弹出报错 - 初始的池深度,这只是声名深度,并不会立刻创建对象 - 池最大深度,多余的对象将在释放时直接销毁 - 设置对象 - - - - - 快速创建一个UI对象池 - - 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 - 并且会监控创建的顺序,将其按照获取的顺序排列。 - - - 对象池管理组件类型 - 预制体对象 - 对象池预设父级 - 如何从对象获取组件 - 如何从组件获取对象 - 额外的获取方法 - 额外的释放方法 - 在释放时检查对象,如果对象是刚建立的成员将会弹出报错 - 初始的池深度,这只是声名深度,并不会立刻创建对象 - 池最大深度,多余的对象将在释放时直接销毁 - 设置对象 - - - - - 快速创建一个对象池 - - 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 - - - - - - - - - 快速创建一个对象池 - - 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 - - - - - - - - - 快速创建一个对象池 - - 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 - - - - - - - - - 快速创建一个对象池 - - 这个简单的对象池将在获取对象时激活物体,释放对象时取消激活物体。 - - - - - - - - - 在释放时检查对象,如果对象是刚建立的成员将会弹出报错 - - - - 提供相机的计算宏,比如计算视锥角等。 @@ -8136,6 +8048,77 @@ + + + 获取软接口反射目标,并执行相应的步骤 + + + + + + 失败返回否,比如字段和属性中都没有找到 + + + + 使用软接口名称(对象以及类上成员名称)获取字段属性的值; + + + + + 失败返回否,比如字段和属性中都没有找到 + + + + 使用软接口名称(对象以及类上成员名称)设置字段属性的值; + + + + + 失败返回否,比如字段和属性中都没有找到 + + + + 使用软接口名称(对象以及类上成员名称)获取字段属性的值 + + + + + + + + + + 使用一系列软接口名称(对象以及类上成员名称)获取多个字段属性的值 + + + + + 如果给定名称找不到字段,则返回default + + + + 使用一系列候选软接口名称设置一系列对象上的字段属性值 + + + + + + + + 在一系列对象上使用相同软接口名称获取字段属性值 + + + + + + + + 在一系列对象上使用相同软接口名称设置字段属性值 + + + + + 超驰实例化 @@ -8267,22 +8250,6 @@ - - - 获取运行时成员集合 - - - - - - - - - 获取一个对象上所有属性的匿名键值对快照 - - - - 获取一个对象上所有属性的匿名键值对快照 @@ -8290,20 +8257,6 @@ - - - 获取一个对象上所有字段的匿名键值对快照 - - - - - - - 获取一个类上所有属性的名称 - - - - 获取一个类上所有属性的名称 @@ -8311,6 +8264,13 @@ + + + 获取一个对象上所有字段的匿名键值对快照 + + + + 获取一个类上所有字段的名称 @@ -8521,377 +8481,6 @@ - - - 反射加速配置 - - - - - 获取方法的哈希值 - - - - - - - - - 获取接口的哈希值 - - - - - - - - 获取软接口反射目标,并执行相应的步骤 - - - - - - 失败返回否,比如字段和属性中都没有找到 - - - - 使用软接口名称(对象以及类上成员名称)获取字段属性的值; - - - - - 失败返回否,比如字段和属性中都没有找到 - - - - 使用软接口名称(对象以及类上成员名称)设置字段属性的值; - - - - - 失败返回否,比如字段和属性中都没有找到 - - - - 使用软接口名称(对象以及类上成员名称)获取字段属性的值 - - - - - - - - - - 使用一系列软接口名称(对象以及类上成员名称)获取多个字段属性的值 - - - - - 如果给定名称找不到字段,则返回default - - - - 使用一系列候选软接口名称设置一系列对象上的字段属性值 - - - - - - - - 在一系列对象上使用相同软接口名称获取字段属性值 - - - - - - - - 在一系列对象上使用相同软接口名称设置字段属性值 - - - - - - - - 查找符合参数条件的构造方法并创建实例 - - 目标类型 - 构造方法参数 - 找到单个构造方法时的回调 - 找到多个构造方法时的回调 - 是否找到符合条件的构造方法 - - - - 检查构造方法是否匹配参数条件 - - - - - 直接调用指定的构造方法创建实例 - - 目标类型 - 要调用的构造方法 - 构造方法参数 - 创建的实例 - - - - 查找符合条件的方法 - - 目标对象 - 方法名称 - 限定的类(null表示不限定) - 输入参数(不包含out参数) - 输出参数类型(包含返回值作为第一个元素, 为空时表示不参考) - 找到单个方法时的回调 - 找到多个方法时的回调 - 是否找到符合条件的方法 - - - - 检查方法是否匹配参数条件(out算作输出值,而ref则输入和输出都算) - - - - - 执行找到的方法 - - 目标对象 - 要执行的方法 - 输入参数 - 输出参数(将被填充) - 方法的返回值(如果有) - - - - 直接执行无参数方法 - - - - - - - - - 调用一个静态无参方法 - - - - - - - - 调用一个实例无参方法 - - - - - - - - - 调用一个有参静态方法,但不对输出类型作限制 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参实例方法,但不对输出类型作限制 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参实例方法 - - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参实例方法 - - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - - - - 调用一个有参静态方法 - - - - 仅包括输入类型,out标记不算在内 - - 预制函数退化链节点 @@ -13421,7 +13010,7 @@ - 双生哈希表 + 双胞胎哈希表 @@ -14866,313 +14455,89 @@ unity委托耗时执行测试 - + - 目录树类,用于处理文本分割和管理 + 目录树型管理结构 - + - 根节点 + 路径分隔符号 - + - 脏标记,标识树是否需要维护 + 当前节点的名称,通常是路径名称 - + - 默认构造函数 + 值是无效的 - + - 将文本按指定分割符添加到目录树 - - 要添加的文本 - 分割符 - 添加后的叶节点 - - - - 在指定父节点下插入子节点 - - 父节点 - 子节点文本 - 插入位置(可选) - 插入的节点 - - - - 查找包含指定文本的节点 - - 要查找的文本 - 是否区分大小写 - 找到的节点列表 - - - - 获取指定节点的所有子节点 - - 父节点 - 子节点列表 - - - - 获取所有叶节点 - - 叶节点列表 - - - - 删除节点及其子树 - - 要删除的节点 - 是否删除成功 - - - - 清理无用节点 - - 起始节点 - - - - 维护树结构(排序、清理等) + 当前值 - + - 获取树中节点文本的数量 + 父级节点 - + - 是否为只读集合 + 子项目 - + - 添加文本到树中(使用默认分割符) - - 要添加的文本 - - - - 清空树 + 如果这个节点是自动生成的,那么可能没有给定值,所以项目为null,但实际上如果获取的话值为defualt。 - + - 检查树中是否包含指定文本 + 创建一个目录树节点 - 要检查的文本 - 是否包含 + - + - 复制到数组 + 创建一个目录树节点,并指定节点无效,这通常用于自动创建 - 目标数组 - 起始索引 + - + - 移除指定文本 + 添加子目录节点 - 要移除的文本 - 是否移除成功 + - + - 获取枚举器 + 根据路径添加新的节点 - 枚举器 + 相对路径 + + - + - 目录树节点类 + 获取当前节点的根节点 + - + - 节点文本内容 - - - - - 分割符集合,用于记录到此节点的不同分割方式数量 - - - - - 优先级,用于节点排序 - - - - - 是否为叶节点 - - - - - 初始化一个目录树节点 - - 节点文本内容 - - - - 添加子节点 - - 要添加的子节点 - - - - 移除子节点 - - 要移除的子节点 - 是否移除成功 - - - - 获取从根节点到当前节点的完整文本 - - 是否包含当前节点的文本 - 完整文本 - - - - 按照优先级排序子节点 - - - - - 插入子节点到指定位置 - - 插入位置 - 要插入的子节点 - - - - 目录树字典类,将目录节点映射到泛型对象 - - 映射的值类型 - - - - 获取目录树 - - - - - 构造函数 - - - - - 添加键值对 - - 目录节点 - 关联的值 - - - - 添加文本并关联值 - - 文本 - 分割符 - 关联的值 - 创建的叶节点 - - - - 获取或设置与指定节点关联的值 - - 目录节点 - 关联的值 - - - - 获取与指定文本路径关联的值 - - 文本路径 - 关联的值 - - - - 检查是否包含指定节点 - - 目录节点 - 是否包含 - - - - 尝试获取与指定节点关联的值 - - 目录节点 - 关联的值 - 是否获取成功 - - - - 移除指定节点及其关联的值 - - 目录节点 - 是否移除成功 - - - - 获取键值对数量 - - - - - 是否为只读集合 - - - - - 添加键值对 - - 键值对 - - - - 清空字典 - - - - - 检查是否包含指定键值对 - - 键值对 - 是否包含 - - - - 复制到数组 - - 目标数组 - 起始索引 - - - - 移除键值对 - - 键值对 - 是否移除成功 - - - - 获取枚举器 - - 枚举器 - - - - 比较类型枚举 + 获取路径下的遍历结构 + + 默认遍历成员从第一个非目录控制字符开始,。 + + ../表示上一级,./表示同级,ROOT/表示顶级,其他片段表示以当前节点往下进行查找(或创建) + 允许在遍历时遇到不存在的节点时创建,否则会产生报错 + 启用调试成员,将输出所有控制字符在遍历的成员 + 允许调试语句,将不再检查语句语法,可以完全使用路径语句进行流程遍历控制,而不会产生报错 @@ -15413,163 +14778,6 @@ 格式化性能报告 - - - 包裹器参数 - - - - - 设置包裹器参数,仅保留传入参数集中与空值不一样的字段 - - - - - 注意:此方法基于反射实现。 - - - - - TextBlockRichBuilder 静态实例集合 - - - 不论该类型的实例是否实现,静态实例总是可以获取,但为了规范具体用法,其中的成员不一定总是是有效的,如果其具体行为尚未定义,即便获取也总是返回null。 - 这里允许你重复实现文本包裹器池对象,从而覆盖原有对象类型,但注意这可能会导致无法预料的后果,实例具体类型将由编译器决定。(这种用法只是一种猜想,最好还是重写) - - - - - 包裹器对象池 - - - - - - 包裹器代理对象池 - - - - - - 包裹器代理接口 - - - - - 当前包裹器代理节点的父级 - - - - - 将当前包裹器代理节点烘焙为包裹器实例,因为包裹器实际上只有设置值的时候关心类型,所以返回值是object类型。 - - - - - - - 包裹器容器代理接口 - - - 限制从池用法,要求池对象必须被具体实现,且继承此接口。 - - - - - 包裹器代理节点的子项成员枚举器 - - - - - 包裹器代理节点的子项数量 - - - - - 包裹器代理节点索引器 - - - - - - - 添加一个代理节点为当前代理节点的子项 - - - - - - 在项目之前插入对象 - - - - - - - 包裹器类型 - - - - - 纯值构建代理 - - - - - 块语法构建代理框架 - - - - - (构建入口)创建代理 - - - - - - - - - 定义如何从池中获取自己的对象 - - - - - - 获取根节点 - - - - - - 当前是根节点 - - - - - - 从当前节点上构建一个文本包裹器 - - - - - - - - 完整释放当前的包裹器代理 - - - - - 在当前节点上构建文本包裹器,然后释放掉它 - - - - - - 清空当前代理 - - 字典树节点类 @@ -16584,16 +15792,16 @@ 额外代理的单例 - - - 组件自身单例(如果目标源并非自身,则可以使用自身引用获取) - - 额外代理的单例 + + + 组件自身单例(如果目标源并非自身,则可以使用自身引用获取) + + 具体的运行时定义实例 @@ -16982,16 +16190,6 @@ 移除此处的单例实例 - - - 移除已有的单例实例,以当前代理实例为准 - - - - - 移除当前代理实例,以首个单例实例为准 - - 手动指派一个实例到此 @@ -17133,12 +16331,23 @@ + + + 此处的矩形变换组件 + + 定义如何获取弱矩形变换组件,用于重载所有弱变换组件检查 + + + 定义如何获取弱变换组件,用于重载所有弱变换组件检查 + + + 定义如何获取此弱游戏对象, 用于重载所有弱游戏对象检查 @@ -17157,6 +16366,36 @@ + + + 定义此弱三维坐标,用于重载所有弱检查 + + + + + + 定义此弱三维旋转,用于重载所有弱检查 + + + + + + 定义此弱三维缩放,用于重载所有弱检查 + + + + + + 定义此弱界面三维坐标,用于重载所有弱检查 + + + + + + 定义此弱界面坐标,用于重载所有弱检查 + + + 如果目标为空 diff --git a/package.json b/package.json index ea8d683..d22a78b 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,9 @@ { "name": "com.lrss3.deconstruction", "displayName": "Xeric Library", - "version": "0.5.5", + "version": "0.5.6", "unity": "2021.3", - "description": "\u6b22\u8fce\u4f7f\u7528Xeric Library\uff0c\u8fd9\u662f\u4e00\u4e2a\u4e13\u6ce8\u4ee3\u7801\u7684\u6269\u5c55\u5e93\r\n\r\n\u25cf\u6269\u5c55Unity\u6210\u5458\u8bed\u6cd5\uff0c\u6269\u5c55\u6570\u636e\u7ed3\u6784Linq\u8bed\u6cd5\uff0c\u589e\u52a0\u8fd0\u7b97\u7b26\u8bed\u6cd5\uff0c\u652f\u6301\u5404\u7c7b\u9690\u5f0f\u7528\u6cd5\uff0c\u652f\u6301\u591a\u79cd\u8f6f\u5f15\u7528\u65b9\u6cd5\uff1b \u9488\u5bf9\u5927\u90e8\u5206\u4f7f\u7528\u573a\u666f\u52a0\u5165\u4e86\uff1a \u51fd\u6570\u5e73\u6ed1\u3001 \u591a\u9879\u5f0f\u8ba1\u7b97\u3001 \u6743\u91cd\u62df\u5408\u3001 \u8fc7\u7a0b\u5206\u7ea7\u3001 \u5de5\u4e1a\u63a7\u5236\u3001 \u66f2\u7ebf\u7ed8\u5236\u3001 \u8def\u5f84\u8bbe\u7f6e\u3001 \u5bf9\u8c61\u63a7\u5236\u3001 \u8fed\u4ee3\u6269\u5c55\u3001 \u7a7a\u95f4\u53d8\u6362\u3001 \u72ec\u7279\u7ed3\u6784\u3001 \u6587\u672c\u683c\u5f0f\u3001 \u7c7b\u578b\u8f6c\u6362\u3001 \u673a\u5668\u7f16\u7801\u3001 \u5f00\u53d1\u8c03\u8bd5\u3001 \u52a8\u6001\u751f\u6210\u3001 \u51e0\u4f55\u521b\u5efa\u3001 \u5feb\u901f\u6c60\u5316\u3001 \u5bfc\u822a\u5bfb\u8def\u3001 \u9694\u79bb\u63a7\u5236\u3001 \u9694\u79bb\u8f93\u5165\u3001 \u8bed\u4e49\u5316\u59d4\u6258\u3001 \u53cd\u5c04\u8d85\u9a70\u3001 \u6570\u5b66\u5e38\u6570\u3001 \u5355\u4f4d\u6362\u7b97\u3001 \u6392\u5e8f\u7b97\u6cd5\u3001 \u7a0b\u5e8f\u8c03\u7528\u3001 \u7f51\u7edc\u8fde\u63a5\u7b49\u5feb\u6377\u7528\u6cd5\u3002 \r\n\u25cf\u591a\u79cd\u7279\u6b8a\u7c7b\u578b\uff1a \u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a\u591a\u7ef4\u5e03\u5c14\u3001 \u6837\u6761\u66f2\u7ebf\u3001 \u8d85\u7ea7\u5355\u4f8b\u3001 \u591a\u4f8b\u7cfb\u7edf\u3001 \u90bb\u5c45\u7f51\u7edc\u3001 \u56db\u53c9\u6811\u3001 \u5b57\u5178\u6811\u3001 \u8f6f\u5f15\u7528\u5c01\u88c5\u5668\u7b49\u3002 \r\n\u25cf\u5404\u79cd\u5e38\u7528\u811a\u672c\uff1a\u6e38\u620f\u4ea4\u4e92\u3001 \u754c\u9762\u9002\u914d\u3001 \u5f31\u6269\u5c55\u3001 \u7ed8\u5236\u5de5\u5382\u3001 SQL\u6269\u5c55\u3002\r\n\r\n\u25cf\u517c\u5bb9\u4e0d\u89c4\u8303\u7a0b\u5e8f\uff1a\u9488\u5bf9\u5404\u79cd\u4e0d\u89c4\u8303\u7684\uff0c\u6216\u6beb\u65e0\u8bbe\u8ba1\u89c4\u5219\u53ef\u8a00\u7684\u7a0b\u5e8f\uff0c\u63d0\u4f9b\u4e86\u66f4\u591a\u57fa\u4e8e\u53cd\u5c04\uff0cCIL\u7279\u6027\u7b49\u4f4e\u7ea7\u8bed\u6cd5\u7684\u7a0b\u5e8f\u6269\u5c55\uff0c\u5141\u8bb8\u901a\u8fc7\u5404\u79cd\u65b9\u5f0f\u5feb\u901f\u5b9e\u73b0\u76ee\u7684\uff1a\r\n1.\u811a\u672c\u6ca1\u6709\u7ee7\u627f\u5355\u4f8b\uff1f\u65e0\u6240\u8c13\uff0c\u8d85\u7ea7\u5355\u4f8b\u4e0d\u9700\u8981\u58f0\u540d\uff0c\u4e5f\u4e0d\u9700\u8981\u4fee\u6539\u4efb\u4f55\u811a\u672c\u5185\u5bb9\u5c31\u53ef\u4ee5\u5b9e\u73b0\u5355\u4f8b\u3002\r\n2.\u591a\u4e2a\u6570\u636e\u7ed3\u6784\u5b57\u6bb5\u4e4b\u95f4\u5197\u4f59\u91cd\u590d\uff1f\u65e0\u6240\u8c13\uff0c\u8f6f\u63a5\u53e3SoftInterface\u53ea\u9700\u8981\u4e00\u4e2a\u540d\u79f0\u5c31\u53ef\u4ee5\u83b7\u53d6\u548c\u8bbe\u7f6e\u503c\uff0c\u4f60\u53ef\u4ee5\u7528\u8f6f\u63a5\u53e3\u5728\u4efb\u610f\u5bf9\u8c61\u4e0a\u904d\u5386\u5b57\u6bb5\uff0c\u5c5e\u6027\uff0c\u65b9\u6cd5\uff0c\u53ea\u8981\u4e0d\u662f\u533f\u540d\u7684\u90fd\u53ef\u4ee5\u8c03\u7528\uff01\r\n3.\u4e0d\u559c\u6b22\u5bf9\u8c61\u6c60\u7684\u521d\u59cb\u5316\uff1f\u6211\u4e5f\u662f\uff0cMacroPool.UnionSet \u8054\u5408\u5bf9\u8c61\u6c60\u652f\u6301\u5c06\u5fc5\u8981\u914d\u7f6e\u9879\u76ee\u6210\u5458\u5f00\u653e\u5230\u754c\u9762\u4e0a\uff0c\u7136\u540e\u76f4\u63a5\u8c03\u7528get\u5c31\u53ef\u4ee5\uff01\r\n4.\u7a0b\u5e8fUI\u6846\u67b6\u548c\u903b\u8f91\u6846\u67b6\u9ad8\u5ea6\u8026\u5408\u65e0\u4ece\u4e0b\u624b\uff1f\u6709\u70b9\u9ebb\u70e6\uff0c\u4e0d\u8fc7\u83dc\u5355\u7279\u6027\uff0c\u67e5\u627e\u7279\u6027\uff0c\u547d\u540d\u6807\u8bb0\u7279\u6027\u53ef\u4ee5\u5e2e\u52a9\u4f60\u65e0\u89c6\u5185\u5bb9\u67e5\u627e\u5b57\u6bb5\u5c5e\u6027\u65b9\u6cd5\u7c7b\u578b\u7b49\u5185\u5bb9\uff0c\u76f4\u63a5\u5c06\u7c7b\u4f20\u5165\u5c31\u80fd\u7a0b\u5e8f\u5316\u751f\u6210\u83dc\u5355\u754c\u9762\u3002\r\n5.\u8d85\u7ea7\u591a\u7684\u6570\u636e\u91cf\u5c06\u5bfc\u81f4\u7a0b\u5e8f\u5361\u987f\uff1f\u8fd9\u662f\u4e2a\u95ee\u9898\uff0c\u53ef\u4ee5\u5b89\u88c5XericUIActionVessel\u63d2\u4ef6\uff0c\u5176\u4e2d\u63d0\u4f9b\u4e86\u591a\u79cd\u57fa\u4e8eUI\u6846\u67b6\u7684\u6570\u636e\u7ed3\u6784\u865a\u62df\u5316\u6280\u672f\uff0c\u57fa\u4e8e\u865a\u62df\u5316\u62c6\u5206\u5927\u91cf\u6570\u636e\u53ef\u4ee5\u51cf\u5c11\u538b\u529b\uff0c\u7cbe\u7ec6\u7684\u6743\u80fd\u5212\u5206\u4e5f\u80fd\u8ba9\u8fd9\u4e9b\u865a\u62df\u5316\u7ed3\u6784\u5728\u5176\u4ed6\u5730\u65b9\u53d1\u5149\u53d1\u70ed\uff01\u3002\r\n6.\u559c\u6b22\u4f7f\u7528\u51fd\u6570\u5f0f\u548clinq\u8bed\u53e5\u7f16\u5199\u7a0b\u5e8f\uff1f\u6ca1\u6709\u95ee\u9898\uff01\u679a\u4e3e\u53ef\u4ee5\u4f7f\u7528MacroEnum\u5206\u7c7b\u548cMacroEnum\u6269\u5c55\uff1b\u6570\u5b66\uff0c\u5411\u91cf\uff0c\u51e0\u4f55\uff0c\u6570\u636e\u7ed3\u6784\u6269\u5c55\uff0c\u5e38\u89c1\u7b97\u6cd5\uff0c\u5e38\u7528\u5b57\u7b26\u8ba1\u7b97\u5df2\u7ecf\u5168\u90e8\u5185\u5d4cMacroMath\u5206\u7c7b\u4e2d\uff0c\u5927\u91cf\u4e0e\u6570\u5b66\uff0c\u5bf9\u8c61\uff0c\u6570\u636e\u7ed3\u6784\u76f8\u5173\u7684\u5feb\u6377\u8bed\u53e5\uff0c\u8fd8\u6709\u66f4\u591a\u7b49\u4f60\u63a2\u7d22\uff01\r\n7.\u60f3\u4f7f\u7528\u66f4\u591a\u4e13\u7528\u6570\u636e\u7ed3\u6784\uff1f\u5927\u9876\u5806\uff0c\u56db\u53c9\u6811\uff0c\u516b\u53c9\u6811\uff0c\u5b57\u5178\u6811\uff0c\u65f6\u95f4\u6233\uff0c\u591a\u6bb5\u7ebf\uff0c\u8d1d\u585e\u5c14\uff0c\u591a\u7ef4\u5e03\u5c14\uff0c\u53cc\u751f\u54c8\u5e0c\u8868\uff0c\u76f8\u90bb\u7f51\u683c\u7b49\u7b49\u5185\u5bb9\u4efb\u541b\u4f7f\u7528\uff0c\u800c\u4e14\u8fd9\u4e9b\u6570\u636e\u7ed3\u6784\u90fd\u6709\u4e13\u7528\u7684\u754c\u9762\uff0c\u754c\u9762\u7f8e\u5316\u8fd9\u4e00\u5757\u3002\r\n8.\u60f3\u8981\u7acb\u523b\u80fd\u591f\u5728\u573a\u666f\u4e2d\u79fb\u52a8\u89d2\u8272\uff1f\u7b2c\u4e00\u4eba\u79f0\uff0c\u7b2c\u4e09\u4eba\u79f0\uff0c\u4e0a\u5e1d\u89c6\u89d2\u5df2\u7ecf\u51c6\u5907\u5c31\u7eea\uff01\r\n9.\u538c\u70e6\u590d\u6742\u7684\u6309\u952e\u68c0\u67e5\u903b\u8f91\uff1f\u6211\u5e2e\u4f60\uff01MacroKey\u4e2d\u7684\u6309\u952e\u72b6\u6001\u8868\u652f\u6301\u4ee5\u81ea\u5df1\u559c\u6b22\u7684\u72b6\u6001\u548c\u9891\u7387\u5904\u7406\u6309\u952e\uff0c\u5e76\u5904\u7406\u6210\u77ed\u6309\uff0c\u957f\u6309\uff0c\u53cc\u51fb\uff0c\u8fde\u51fb\uff0c\u62d6\u62fd\uff0c\u4ee5\u53ca\u8fd9\u4e9b\u72b6\u6001\u7684\u6309\u4e0b\u548c\u91ca\u653e\u72b6\u6001\uff01\u652f\u6301\u4ee5\u65f6\u95f4\uff0c\u5750\u6807\u7b49\u5171\u8ba14\u79cd\u6a21\u5f0f\u5904\u7406\uff0c\u6ee1\u8db3\u7edd\u5927\u90e8\u5206\u573a\u666f\u7684\u7ec6\u5206\u9700\u6c42\u3002\r\n10.\u62c5\u5fc3\u517c\u5bb9\u6027\u5417\uff1f\u7a0b\u5e8f\u4e3b\u8981\u57fa\u4e8e2022\u7248\u672c\u5f00\u53d1\uff0c\u5411\u4e0b\u517c\u5bb92021\uff0c\u5411\u4e0a\u652f\u63016000\uff0c\u4e0d\u6d89\u53ca\u6e32\u67d3\u7ba1\u7ebfAPI\uff0c\u517c\u5bb9\u6027\u8f83\u597d\u3002\r\n\r\n\u66f4\u591a\u7f16\u8f91\u5668\u529f\u80fd\u53c2\u8003\uff1a\r\n\u25cf\u5b89\u88c5Xeric Blueprint Graph\u4ee5\u83b7\u53d6Unity\u4e0a\u84dd\u56fe\u8282\u70b9\u529f\u80fd, \u5e76\u652f\u6301Xeric\u51fd\u6570\u5e93\u529f\u80fd\u3002\r\n\u25cf\u5b89\u88c5Xeric UI Graph\u4ee5\u83b7\u53d6\u84dd\u56fe\u5316UI\u751f\u6210\u529f\u80fd, \u4f7f\u7528\u84dd\u56fe\u903b\u8f91\u63a7\u5236UI\u4ea4\u4e92, \u751f\u6210\u903b\u8f91, \u5e76\u652f\u6301Xeric\u51fd\u6570\u5e93\u529f\u80fd\u3002\r\n\u25cf\u5b89\u88c5Digital Twin Tool\u4ee5\u83b7\u53d6\u5e38\u7528\u8c03\u8bd5\u5de5\u5177\u96c6\u3002\r\n\u25cf\u5b89\u88c5Nexus Frame Flow\u4ee5\u83b7\u53d6\u5de5\u4f5c\u67b6\u6784\u6d41\u5904\u7406\u529f\u80fd\u3002\r\n\u25cf\u5b89\u88c5Xeric Editor\u8f85\u52a9\u5f15\u64ce\u5927\u7eb2\u7f8e\u5316\u7ec4\u4ef6\u3001 \u8d44\u6e90\u5783\u573e\u5904\u7406\u7ec4\u4ef6\u3001 \u8d44\u6e90\u7f13\u5b58\u7ec4\u4ef6\u3001 \u5feb\u901f\u622a\u56fe\u529f\u80fd, \u4ee5\u53ca\u66f4\u591a\u5feb\u6377\u952e\u529f\u80fd\r\n\r\n\u4f7f\u7528\u7f16\u8bd1\u6807\u8bb0\u542f\u7528\u529f\u80fd\uff1a\r\n\u25cfXericLibrary\uff1a\u901a\u7528\u7684\u542f\u7528\u7279\u6b8a\u529f\u80fd\u3002\r\n\r\n\u5f53\u524d\u63d2\u4ef6\u63d0\u4f9b\u7f16\u8f91\u5668\u529f\u80fd\uff1aDeepseek AI\u5bf9\u8bdd\u3002\r\n\r\n\u9700\u8981\u6ce8\u610f\uff1a\u63d2\u4ef6\u5185\u5982\u679c\u6d89\u53ca\u591a\u5e73\u53f0\u5207\u6362, \u53ef\u80fd\u4f1a\u63d0\u4f9b\u591a\u79cd\u81ea\u52a8\u6216\u624b\u52a8\u7684\u5207\u6362\u65b9\u6848, \u6216\u9ed8\u8ba4\u4f7f\u7528windows\u5e73\u53f0, \u8bf7\u6ce8\u610f\u8fa8\u522b\u3002\r\n\r\n\u5efa\u8bae\u6dfb\u52a0ODin\u63d2\u4ef6, \u4fbf\u4e8e\u5448\u73b0\u66f4\u591a\u754c\u9762\u529f\u80fd\u3002\r\n\r\n\u66f4\u591a\u8be6\u7ec6\u5185\u5bb9\u8bf4\u660e\u8bf7\u7ffb\u9605README\u6587\u6863\u3002\r\n\u5982\u679c\u53d1\u73b0\u4efb\u4f55\u95ee\u9898, \u5305\u62ec\u7248\u672c\u517c\u5bb9\u6027, \u8ba1\u7b97\u9519\u8bef, \u8c03\u7528\u9519\u8bef, \u4f7f\u7528\u95ee\u9898, \u90fd\u53ef\u4ee5\u901a\u8fc7\u53d1\u5e03\u9875Issues\u6216\u5176\u4ed6\u8054\u7cfb\u65b9\u5f0f\u627e\u6211\u83b7\u5f97\u5e2e\u52a9\u3002", + "description": "\u6b22\u8fce\u4f7f\u7528Xeric Library, \u8fd9\u662f\u4e00\u4e2a\u4e13\u6ce8\u4ee3\u7801\u7684\u6269\u5c55\u5e93 \r\n\r\n * \u4e13\u6ce8Unity\u6210\u5458\u8bed\u6cd5, \u6269\u5c55\u591a\u79cd\u57fa\u672c\u7c7b\u578b\u7684\u6570\u636e\u7ed3\u6784\u7684Linq\u8bed\u6cd5/\u8bed\u6cd5\u7cd6, \u63d0\u4f9b\uff1a \u51fd\u6570\u5e73\u6ed1\u3001 \u591a\u9879\u5f0f\u8ba1\u7b97\u3001 \u6743\u91cd\u62df\u5408\u3001 \u8fc7\u7a0b\u5206\u7ea7\u3001 \u5de5\u4e1a\u63a7\u5236\u3001 \u66f2\u7ebf\u7ed8\u5236\u3001 \u8def\u5f84\u8bbe\u7f6e\u3001 \u5bf9\u8c61\u63a7\u5236\u3001 \u8fed\u4ee3\u6269\u5c55\u3001 \u7a7a\u95f4\u53d8\u6362\u3001 \u72ec\u7279\u7ed3\u6784\u3001 \u6587\u672c\u683c\u5f0f\u3001 \u7c7b\u578b\u8f6c\u6362\u3001 \u673a\u5668\u7f16\u7801\u3001 \u5f00\u53d1\u8c03\u8bd5\u3001 \u52a8\u6001\u751f\u6210\u3001 \u51e0\u4f55\u521b\u5efa\u3001 \u5feb\u901f\u6c60\u5316\u3001 \u5bfc\u822a\u5bfb\u8def\u3001 \u9694\u79bb\u63a7\u5236\u3001 \u9694\u79bb\u8f93\u5165\u3001 \u8bed\u4e49\u5316\u59d4\u6258\u3001 \u53cd\u5c04\u8d85\u9a70\u3001 \u6570\u5b66\u5e38\u6570\u3001 \u5355\u4f4d\u6362\u7b97\u3001 \u6392\u5e8f\u7b97\u6cd5\u3001 \u7a0b\u5e8f\u8c03\u7528\u3001 \u7f51\u7edc\u8fde\u63a5\u7b49\u5feb\u6377\u7528\u6cd5\u3002 \r\n\r\n * \u6269\u5c55\u7279\u6b8a\u7c7b\u578b, \u5305\u62ec\u4e14\u4e0d\u9650\u4e8e: \u591a\u7ef4\u5e03\u5c14\u3001 \u6837\u6761\u66f2\u7ebf\u3001 \u8d85\u7ea7\u5355\u4f8b\u3001 \u591a\u4f8b\u7cfb\u7edf\u3001 \u90bb\u5c45\u7f51\u7edc\u3001 \u56db\u53c9\u6811\u3001 \u5b57\u5178\u6811\u3001 \u8f6f\u5f15\u7528\u5c01\u88c5\u5668\u7b49\u3002 \r\n\r\n * \u6269\u5c55\u5404\u79cd\u5e38\u7528\u811a\u672c: \u6e38\u620f\u4ea4\u4e92\u3001 \u754c\u9762\u9002\u914d\u3001 \u5f31\u6269\u5c55\u3001 \u7ed8\u5236\u5de5\u5382\u3001 SQL\u6269\u5c55\u3002 \r\n\r\n * \u517c\u5bb9\u4e0d\u89c4\u8303\u7a0b\u5e8f: \u9488\u5bf9\u4e0d\u89c4\u8303\u6216\u6beb\u65e0\u8bbe\u8ba1\u89c4\u5219\u53ef\u8a00\u7684\u4ee3\u7801, \u63d0\u4f9b\u4e86\u66f4\u591a\u57fa\u4e8e\u53cd\u5c04, CIL\u7279\u6027\u7b49\u5e95\u5c42\u8bed\u6cd5\u7684\u7a0b\u5e8f\u6269\u5c55, \u4ee5\u4fbf\u5feb\u901f\u5b9e\u73b0\u76ee\u7684: \r\n1. \u811a\u672c\u6ca1\u6709\u7ee7\u627f\u5355\u4f8b? \"\u8d85\u7ea7\u5355\u4f8b\"\u4e0d\u9700\u8981\u58f0\u540d, \u4e5f\u4e0d\u9700\u8981\u4fee\u6539\u4efb\u4f55\u539f\u6765\u7684\u811a\u672c\u5185\u5bb9, \u5f84\u76f4\u8c03\u7528\u5c31\u662f\u5355\u4f8b\u3002\r\n2. \u6570\u636e\u7ed3\u6784\u5b57\u6bb5\u5197\u4f59\u91cd\u590d? \"\u8f6f\u63a5\u53e3\" (SoftInterface) \u652f\u6301\u5feb\u901f\u6267\u884c\u53cd\u5c04\u83b7\u53d6\u548c\u8bbe\u7f6e\uff0c\u65b9\u6cd5\u59d4\u6258\uff0c\u5b57\u6bb5\u5c5e\u6027\u4e00\u884c\u8c03\u7528\u3002 \r\n3. untiy\u5bf9\u8c61\u8981\u9075\u5faa\u751f\u547d\u5468\u671f\u6c60\u5316\u592a\u9ebb\u70e6? \"\u8054\u5408\u5bf9\u8c61\u6c60\" (MacroPool.UnionSet) \u76f4\u63a5\u5c06\u8bbe\u5b9a\u9879\u76ee\u5f00\u653e\u5230inspector\u4e0a\u914d\u7f6e\uff0c\u4ee3\u7801\u4e2d\u53ea\u9700\u8981get\u548crelease\u5c31\u53ef\u4ee5! \r\n4. \u7a0b\u5e8fUI\u6846\u67b6\u548c\u903b\u8f91\u6846\u67b6\u9ad8\u5ea6\u8026\u5408\u65e0\u4ece\u4e0b\u624b? \u6709\u70b9\u9ebb\u70e6, \u4e0d\u8fc7\u83dc\u5355\u7279\u6027, \u67e5\u627e\u7279\u6027, \u547d\u540d\u6807\u8bb0\u7279\u6027\u53ef\u4ee5\u5e2e\u52a9\u4f60\u65e0\u89c6\u5185\u5bb9\u67e5\u627e\u5b57\u6bb5\u5c5e\u6027\u65b9\u6cd5\u7c7b\u578b\u7b49\u5185\u5bb9, \u76f4\u63a5\u5c06\u7c7b\u4f20\u5165\u5c31\u80fd\u7a0b\u5e8f\u5316\u751f\u6210\u83dc\u5355\u754c\u9762\u3002 \r\n5. \u9a71\u52a8ui\u7684\u6570\u636e\u91cf\u592a\u5927? \u63d0\u4f9b\u591a\u79cd\u57fa\u4e8eUI\u6846\u67b6\u7684\u6570\u636e\u7ed3\u6784\u865a\u62df\u5316\u6280\u672f, \u4f7f\u7528\u865a\u62df\u5316\u62c6\u5206\u6570\u636e\u53ef\u4ee5\u6bcf\u6b21\u5237\u65b0\u7684\u538b\u529b\u3002 \u4f7f\u7528\u6b64\u529f\u80fd\u9700\u8981\u5b89\u88c5XericUIActionVessel\u63d2\u4ef6, \u4ee3\u7801\u4ee5\u811a\u672c\u5448\u73b0\uff0c\u76f4\u63a5\u6d4f\u89c8\uff0c\u7f16\u5199\u65f6\u9075\u5faa\u7cbe\u7ec6\u7684\u5de5\u5382\u6743\u80fd\u5212\u5206\uff01 \r\n6. \u559c\u6b22\u51fd\u6570\u5f0f\u53d8\u6210\u548c\u4fbf\u6377\u7684\u8bed\u6cd5\u7cd6? \u63d2\u4ef6\u63d0\u4f9b\u591a\u79cd\u5de5\u5177\u7c7b: \u679a\u4e3e\u53ef\u4ee5\u4f7f\u7528`MacroEnum`\u5206\u7c7b\u548c`MacroEnum`\u6269\u5c55; \u6570\u5b66, \u5411\u91cf, \u51e0\u4f55, \u6570\u636e\u7ed3\u6784\u6269\u5c55, \u5e38\u89c1\u7b97\u6cd5, \u5e38\u7528\u5b57\u7b26\u8ba1\u7b97\u5df2\u7ecf\u5168\u90e8\u5185\u5d4c`MacroMath`\u5206\u7c7b; \r\n7. \u9700\u8981\u4f7f\u7528\u9ad8\u7ea7\u6570\u636e\u7ed3\u6784? \u5927\u9876\u5806, \u56db\u53c9\u6811, \u516b\u53c9\u6811, \u5b57\u5178\u6811, \u65f6\u95f4\u6233, \u591a\u6bb5\u7ebf, \u8d1d\u585e\u5c14, \u591a\u7ef4\u5e03\u5c14(\u6bd4\u7279\u77e2\u91cf), \u6bd4\u7279\u56fe, \u53cc\u751f\u54c8\u5e0c\u8868, \u76f8\u90bb\u7f51\u683c\u7b49\u5185\u5bb9\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u3002 \r\n8. \u60f3\u8981\u7acb\u523b\u80fd\u591f\u5728\u573a\u666f\u4e2d\u79fb\u52a8\u89d2\u8272? \u7b2c\u4e00\u4eba\u79f0, \u7b2c\u4e09\u4eba\u79f0, \u4e0a\u5e1d\u89c6\u89d2\u5df2\u7ecf\u51c6\u5907\u5c31\u7eea! \r\n9. \u538c\u70e6\u590d\u6742\u7684\u6309\u952e\u68c0\u67e5\u903b\u8f91? \u6309\u952e\u5b8f (MacroKey) \u63d0\u4f9b\u72b6\u6001\u8868\u5904\u7406\u66f4\u591a\u6309\u952e, \u53ef\u4ee5\u8bc6\u522b\u77ed\u6309, \u957f\u6309, \u53cc\u51fb, \u8fde\u51fb, \u62d6\u62fd, \u4ee5\u53ca\u5b83\u4eec\u7684\u6309\u4e0b\u548c\u91ca\u653e\u72b6\u6001! \u4e14\u53ef\u4ee5\u9009\u62e9\u4ee5\u65f6\u95f4, \u5750\u6807\u7b49\u5171\u8ba14\u79cd\u6a21\u5f0f\u89e6\u53d1, \u652f\u6301\u65b0\u8f93\u5165\u7cfb\u7edf, \u6ee1\u8db3\u7edd\u5927\u90e8\u5206\u573a\u666f\u7684\u7ec6\u5206\u9700\u6c42\u3002 \r\n10. \u9700\u8981\u9690\u85cf\u65e5\u5fd7\u8c03\u7528\u6808\u4fe1\u606f? XericLogger \u53ef\u4ee5\u51cf\u5c11\u65e5\u5fd7\u8f93\u51fa\u5185\u5bb9\u3002 \r\n11. \u9700\u8981\u66f4\u591a\u8c03\u8bd5\u4fe1\u606f? \u63d0\u4f9b\u53ef\u4ee5\u548c\u865a\u5e7b\u539f\u751f\u5ab2\u7f8e\u7684Gizmos\u8c03\u8bd5\u663e\u793a\u529f\u80fd\u3002 \r\n11. \u62c5\u5fc3\u517c\u5bb9\u6027\u5417? \u7a0b\u5e8f\u4e3b\u8981\u57fa\u4e8e2022\u7248\u672c\u5f00\u53d1, \u5411\u4e0b\u517c\u5bb92021, \u5411\u4e0a\u652f\u63016000, \u4e0d\u6d89\u53ca\u6e32\u67d3\u7ba1\u7ebfAPI, \u6709\u9488\u5bf9webgl\u7248\u672c\u7684\u5355\u72ec\u6784\u5efa\u7248\u672c, \u4e14\u7ecf\u8fc7\u9879\u76ee\u5b9e\u6218\u9a8c\u8bc1\u3002 \r\n\r\n\u66f4\u591a\u7f16\u8f91\u5668\u529f\u80fd\u53c2\u8003: \r\n * \u5b89\u88c5Xeric Blueprint Graph\u4ee5\u83b7\u53d6Unity\u4e0a\u84dd\u56fe\u8282\u70b9\u529f\u80fd, \u5e76\u652f\u6301Xeric\u51fd\u6570\u5e93\u529f\u80fd\u3002\r\n * \u5b89\u88c5Xeric UI Graph\u4ee5\u83b7\u53d6\u84dd\u56fe\u5316UI\u751f\u6210\u529f\u80fd, \u4f7f\u7528\u84dd\u56fe\u903b\u8f91\u63a7\u5236UI\u4ea4\u4e92, \u751f\u6210\u903b\u8f91, \u5e76\u652f\u6301Xeric\u51fd\u6570\u5e93\u529f\u80fd\u3002\r\n * \u5b89\u88c5Digital Twin Tool\u4ee5\u83b7\u53d6\u5e38\u7528\u8c03\u8bd5\u5de5\u5177\u96c6\u3002\r\n * \u5b89\u88c5Nexus Frame Flow\u4ee5\u83b7\u53d6\u5de5\u4f5c\u67b6\u6784\u6d41\u5904\u7406\u529f\u80fd\u3002\r\n * \u5b89\u88c5Xeric Editor\u8f85\u52a9\u5f15\u64ce\u5927\u7eb2\u7f8e\u5316\u7ec4\u4ef6\u3001 \u8d44\u6e90\u5783\u573e\u5904\u7406\u7ec4\u4ef6\u3001 \u8d44\u6e90\u7f13\u5b58\u7ec4\u4ef6\u3001 \u5feb\u901f\u622a\u56fe\u529f\u80fd, \u4ee5\u53ca\u66f4\u591a\u5feb\u6377\u952e\u529f\u80fd", "keywords": [ "unity", "xeric"