diff --git a/CHANGELOG.md b/CHANGELOG.md index dbe4ce7..d1e3bc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,18 @@ # Changelog -## [Unrelase] +## [UnRealse] + +修复富文本包裹器中SpriteBlock在处理颜色元素时选择到错误下标的问题。 +增加了一些windows窗口命令。 +超链接管理器增加了在启动时自动修复射线检测的问题,详见XchartsUIForXeric #1。 +列表库添加 +* 迭代直到[真,假,相等,不等] +* 迭代重复 + +列表库差异比较库添加了 +* 通过数量比较(也支持替换) + +## [0.5.1] 修复反射库钟使用方法类型检查时,产生数组越界,或空引用问题,这会在部分匿名转换过程中发生。 修复使用匿名对象赋值时,如果类型不匹配会报错的问题,现在改为了产生警告。 @@ -11,9 +23,9 @@ ## [0.5.0] - 2025-07-04 +中间那个版本感觉不吉利,所以没有,并不是缺少了这部分版本。我是坚定的唯物主义者这点并没有改变,我甚至在小区里买过44号车位(它确实要便宜一些),虽然后面长租给别人了。 调整了插件编译结构 插件的部署地址换到了自己的[服务器](https://xeric.zicp.fun/). -中间那个版本感觉不吉利,所以没有,并不是缺少了这部分版本。 本体切换使用il2cpp版本的json dll,后面会将这部分内容放在dll外面,避免对某一特定版本dll依赖。 添加了一个tmp超链接处理功能。 修复超级单例中对示例获取逻辑。 diff --git a/Editor/XericLibraryEditor.dll b/Editor/XericLibraryEditor.dll index ee5441e..81349be 100644 Binary files a/Editor/XericLibraryEditor.dll and b/Editor/XericLibraryEditor.dll differ diff --git a/Runtime/UI/TmpText/TMPHyperlinkManager.cs b/Runtime/UI/TmpText/TMPHyperlinkManager.cs index c51d6a9..9732226 100644 --- a/Runtime/UI/TmpText/TMPHyperlinkManager.cs +++ b/Runtime/UI/TmpText/TMPHyperlinkManager.cs @@ -43,6 +43,13 @@ namespace Deconstruction.UI.TmpText /// private Dictionary _linkCallbacks = new Dictionary(); +#if UNITY_EDITOR + protected void OnValidate() + { + canvas = GetComponentInParent(); + } +#endif + protected void Awake() { if (canvas == null) diff --git a/Runtime/UI/TmpText/TMPHyperlinkReceiver.cs b/Runtime/UI/TmpText/TMPHyperlinkReceiver.cs index 7e1516d..91b144e 100644 --- a/Runtime/UI/TmpText/TMPHyperlinkReceiver.cs +++ b/Runtime/UI/TmpText/TMPHyperlinkReceiver.cs @@ -5,6 +5,7 @@ using TMPro; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; +using UnityEngine.Serialization; using XericLibrary.Runtime.MacroLibrary; namespace Deconstruction.UI.TmpText @@ -17,6 +18,8 @@ namespace Deconstruction.UI.TmpText { private TextMeshProUGUI _tmpText; + public bool autoFixRayCastTargetState = true; + #if ODIN_INSPECTOR [LabelText("超链接管理器*")] #endif @@ -56,17 +59,30 @@ namespace Deconstruction.UI.TmpText yield return link; } } - - - private void Awake() + +#if UNITY_EDITOR + protected void OnValidate() { _tmpText = GetComponent(); + } +#endif + + protected virtual void Awake() + { + if (_tmpText == null) + _tmpText = GetComponent(); if (manager == null) transform.GetParents().Startup(transform).GetComponent(out manager); if (manager == null) throw new Exception("TMP文本超链接集成捕获组件必须放在具有管理器的父级下"); } - + + protected virtual void OnEnable() + { + if (autoFixRayCastTargetState) + _tmpText.raycastTarget = true; + } + public void OnPointerClick(PointerEventData eventData) { ClickPoint(eventData.position); @@ -87,7 +103,7 @@ namespace Deconstruction.UI.TmpText } catch (Exception e) { - Debug.LogError($"点击 {_tmpText.text.LimitStringLength(32)} 的超链接 {linkID} 时出错:\n{e.Message}\n{e.Data}", this); + Debug.LogError($"超链接目标事件存在错误 {_tmpText.text.LimitStringLength(32)} :\n{e.Message}\n{e.Data}", this); } } } diff --git a/Runtime/XericLibrary.dll b/Runtime/XericLibrary.dll index 5f0907c..480293a 100644 Binary files a/Runtime/XericLibrary.dll and b/Runtime/XericLibrary.dll differ diff --git a/Runtime/XericLibrary.xml b/Runtime/XericLibrary.xml index fbb4923..3e25f71 100644 --- a/Runtime/XericLibrary.xml +++ b/Runtime/XericLibrary.xml @@ -934,6 +934,11 @@ 游戏方法调用标记类型 + + + 自动查找组件 + + 自定义菜单特性。 @@ -3491,6 +3496,24 @@ 当目标枚举不实现Flags时,需要进行完全匹配 返回是否存在至少有一个有效的枚举项目 + + + 枚举小于0,或者说不存在有效的枚举项目 + + 返回是否不存在有效的枚举项目 + + + + 枚举小于0,或者说不存在有效的枚举项目 + + 返回是否不存在有效的枚举项目 + + + + 枚举小于0,或者说不存在有效的枚举项目 + + 返回是否不存在有效的枚举项目 + 枚举1有效 @@ -3539,18 +3562,6 @@ - - - 枚举小于0,或者说不存在有效的枚举项目 - - 返回是否不存在有效的枚举项目 - - - - 枚举小于0,或者说不存在有效的枚举项目 - - 返回是否不存在有效的枚举项目 - Fisher-Yates洗牌算法,时间复杂度为O(n*n),空间复杂度为O(n); @@ -3662,6 +3673,113 @@ 内插语法,表示此foreachdo不会作为执行器运行,而是作为其中一步执行 + + + 重复枚举器中的每个对象 + + + + + + + + + 重复枚举器中的每个对象 + + + + + + + + + 迭代直到真状态 + + + + + 输出迭代成员包括使条件翻转的成员 + + + + + 迭代直到假状态 + + + + + 输出迭代成员包括使条件翻转的成员 + + + + + 迭代直到相等 + + + + + 输出迭代成员包括使条件翻转的成员 + + + + + 迭代直到不相等 + + + + + 输出迭代成员包括使条件翻转的成员 + + + + + 从首个条件为真的成员开始迭代 + + + + + 输出迭代成员包括使条件翻转的成员 + + + + + 从首个条件为假的成员开始迭代 + + + + + 输出迭代成员包括使条件翻转的成员 + + + + + 从首个相等的成员开始迭代 + + + + + 输出迭代成员包括使条件翻转的成员 + + + + + 从首个不等的成员开始迭代 + + + + + 输出迭代成员包括使条件翻转的成员 + + + + + 迭代直到计数超出 + + + + + + 在枚举器中定位到首个当equals结果为真的项目索引 @@ -3767,7 +3885,7 @@ - 将枚举器成员合并为一个结果 + 将枚举器成员合并为一个结果(比如用这个方法计算加法?) @@ -4128,6 +4246,15 @@ + + + 在列表的指定位置添加目标,如果中间为空,则会填充空 + + + + + + 尝试给定索引处做些什么,如果索引或项目无效,则不执行(这是获取语句,空项目也不会执行) @@ -4186,6 +4313,17 @@ 添加成员(从源数组末尾开始添加) 替换成员(如果为空,则不会检查数组成员差异) + + + 比较这个列表的数量与目标数量的差异, + + + + + + + + 尝试从列表中读取,如果项目为空,则先填充空,然后再获取 @@ -4453,6 +4591,15 @@ + + + 获取在概率分布中的随机布尔值(如果需要非绝对概率随机,请移步洗牌算法) + + 概率基数 + 百分比(≤1) + + + 统一的单维随机数获取 @@ -5612,12 +5759,12 @@ 值 - + 最小值 - + 最大值 @@ -5642,6 +5789,18 @@ 无效时展示 + + + 值包裹器 + + + + + + + + + 值表达式包裹器(没有子项,不计数) @@ -5699,6 +5858,19 @@ + + + 条件包裹器 + + + + + 设置参数 + + 参数起点索引 + 所有参数 + 返回使用了多少参数 + 对齐 @@ -6158,6 +6330,53 @@ 当前返回的最优单词的编辑距离 当前最优的单词 + + + 右值为左值的一部分时为包含 + + + + + 左值为右值的一部分时为属于 + + + + + 文本比较时考虑空格 + + + + + 两者完全相等 + + + + + 忽略空格 + + + + + 忽略空格,大小写 + + + + + 判断两个文本是否相等 + + + + 判断模式 + + + + + 预处理字符串(应用所有模式规则) + + + + + 一年有多少天 @@ -12567,8 +12786,8 @@ 可以直接获取一些没有空的类的空对象 - 与直接使用default不同的是,这里会尝试创建一个空示例,这对于使用 - + 与直接使用default不同的是,这里会尝试创建一个空示例 + (可能存在性能或aot问题,可能还是建议在各个类自身里编写空对象。) @@ -12740,6 +12959,11 @@ 当前时刻 + + + 当天的起始时刻 + + 时间节点 @@ -14128,6 +14352,11 @@ 先导事件(如果MONO不允许启动Awake,先导事件仍会触发) + + + 原生支持各种宏用法的mono脚本 + + 严格模式脚本 diff --git a/package.json b/package.json index a7fc883..fb5afb4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "com.lrss3.deconstruction", "displayName": "Xeric Library", - "version": "0.5.0", + "version": "0.5.1", "unity": "2021.3", "description": "\u8fd9\u662f\u4e00\u4e2a\u89c4\u8303\u57fa\u7840\u7528\u4f8b\u7684\u6269\u5c55\u5e93, \u4e3b\u8981\u63d0\u4f9b\u4ee5\u4e0b\u529f\u80fd\r\n\r\n\u25aa\u7f16\u7a0b\u652f\u6301\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\u3002\r\n\u8fd8\u6709\u591a\u79cd\u7279\u6b8a\u7c7b\u578b, \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\r\n\u25aa\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\u25aa\u5f53\u524d\u63d2\u4ef6\u63d0\u4f9b\u7f16\u8f91\u5668\u529f\u80fd\uff1aDeepseek AI\u5bf9\u8bdd\u3002\r\n\u66f4\u591a\u7f16\u8f91\u5668\u529f\u80fd\u53c2\u8003\uff1a\r\n\u25aa\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\u25aa\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\u25aa\u5b89\u88c5Digital Twin Tool\u4ee5\u83b7\u53d6\u5e38\u7528\u8c03\u8bd5\u5de5\u5177\u96c6\u3002\r\n\u25aa\u5b89\u88c5Nexus Frame Flow\u4ee5\u83b7\u53d6\u5de5\u4f5c\u67b6\u6784\u5904\u7406\u529f\u80fd\u3002\r\n\u25aa\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\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", "keywords": [