update 0.5.3

This commit is contained in:
2025-09-26 09:52:25 +08:00
parent 48cacb7e52
commit 1bd65e2b37
7 changed files with 69 additions and 64 deletions
Binary file not shown.
Binary file not shown.
+34 -13
View File
@@ -202,10 +202,13 @@ namespace XericLibrary.Runtime.MacroLibrary
#endif #endif
public ToggleGroup ToggleGroup; public ToggleGroup ToggleGroup;
#if ODIN_INSPECTOR #if ODIN_INSPECTOR
[SerializeField, LabelText("编辑单选项目顺序")] [LabelText("编辑单选项目顺序")]
#endif #endif
[SerializeField]
protected List<Toggle> toggleList = new List<Toggle>(); protected List<Toggle> toggleList = new List<Toggle>();
protected bool ToggleListInvalid => toggleList is not { Count: > 0 };
public List<Toggle> ToggleList public List<Toggle> ToggleList
{ {
get get
@@ -214,7 +217,7 @@ namespace XericLibrary.Runtime.MacroLibrary
if (!Application.isPlaying) if (!Application.isPlaying)
return toggleList; return toggleList;
#endif #endif
if (_mappingDirty) if (_mappingDirty || ToggleListInvalid)
{ {
BakeToggleGroupItems(); BakeToggleGroupItems();
_mappingDirty = false; _mappingDirty = false;
@@ -259,7 +262,7 @@ namespace XericLibrary.Runtime.MacroLibrary
} }
// 映射关系脏 // 映射关系脏
private bool _mappingDirty = true; private bool _mappingDirty = false;
// 未初始化 // 未初始化
private bool _noInit = true; private bool _noInit = true;
@@ -284,7 +287,7 @@ namespace XericLibrary.Runtime.MacroLibrary
{ {
if (ToggleGroup == null) if (ToggleGroup == null)
{ {
if (toggleList is not { Count: > 0 }) if (ToggleListInvalid)
{ {
Debug.LogError("未指定单选项目组中的任何引用成员,无法初始化"); Debug.LogError("未指定单选项目组中的任何引用成员,无法初始化");
return; return;
@@ -325,7 +328,7 @@ namespace XericLibrary.Runtime.MacroLibrary
else else
#endif #endif
{ {
if (!ToggleGroup.gameObject.activeInHierarchy && toggleList is not { Count: > 0 }) if (!ToggleGroup.gameObject.activeInHierarchy && ToggleListInvalid)
Debug.LogError( Debug.LogError(
$"当前运行状态导致无法直接获取ToggleGroup中的成员,且运行时我无法自行决定目标ToggleGroup({ToggleGroup.name})所属生命周期,请提前在编辑器中对相关状态进行烘焙"); $"当前运行状态导致无法直接获取ToggleGroup中的成员,且运行时我无法自行决定目标ToggleGroup({ToggleGroup.name})所属生命周期,请提前在编辑器中对相关状态进行烘焙");
else else
@@ -341,7 +344,7 @@ namespace XericLibrary.Runtime.MacroLibrary
public void BakeSortToggelGroupItems() public void BakeSortToggelGroupItems()
{ {
BakeToggleGroupItems(); BakeToggleGroupItems();
if (toggleList is not { Count: > 0 }) if (ToggleListInvalid)
toggleList = MacroSort.FullCharacterOrderSort(toggleList, a => a.name) toggleList = MacroSort.FullCharacterOrderSort(toggleList, a => a.name)
.ToList(); .ToList();
} }
@@ -351,11 +354,26 @@ namespace XericLibrary.Runtime.MacroLibrary
public void BakeReverseSortToggelGroupItems() public void BakeReverseSortToggelGroupItems()
{ {
BakeToggleGroupItems(); BakeToggleGroupItems();
if (toggleList is not { Count: > 0 }) if (ToggleListInvalid)
toggleList = MacroSort.FullCharacterOrderSort(toggleList, a => a.name) toggleList = MacroSort.FullCharacterOrderSort(toggleList, a => a.name)
.Reverse() .Reverse()
.ToList(); .ToList();
} }
#if ODIN_INSPECTOR
[HorizontalGroup("GetGroup"), Button("SaveGroup")]
#endif
public void SetToggelGroupItems()
{
var realToggleGroup = ToggleGroup.GetToggles();
if (ToggleListInvalid || toggleList.Count != realToggleGroup.Count)
{
Debug.LogError("编组无效,或编组成员与实际不符");
return;
}
realToggleGroup.Clear();
realToggleGroup.AddRange(toggleList);
Debug.Log("编组设置成功");
}
public void Initialize() public void Initialize()
{ {
@@ -379,19 +397,19 @@ namespace XericLibrary.Runtime.MacroLibrary
} }
} }
// 防空
toggleList = toggleList.Where(a => a != null).ToList();
// 防傻 // 防傻
if (ToggleGroup == null) if (ToggleGroup == null)
ToggleGroup = toggleList[0].group; ToggleGroup = toggleList.FirstOrDefault(a => a.group != null)?.group;
if (ToggleGroup == null) if (ToggleGroup == null)
{ {
ToggleGroup = toggleList[0].gameObject.AddComponent<ToggleGroup>(); ToggleGroup = toggleList[0].transform.parent.gameObject.AddComponent<ToggleGroup>();
foreach (var toggle in toggleList) foreach (var toggle in toggleList)
toggle.group = ToggleGroup; toggle.group = ToggleGroup;
} }
// 防空
toggleList = toggleList.Where(a => a != null).ToList();
// 事件初始化 // 事件初始化
for (var i = 0; i < toggleList.Count; i++) for (var i = 0; i < toggleList.Count; i++)
{ {
@@ -407,6 +425,9 @@ namespace XericLibrary.Runtime.MacroLibrary
if (!ToggleGroup.allowSwitchOff && _nowSelectToggleIndex < 0) if (!ToggleGroup.allowSwitchOff && _nowSelectToggleIndex < 0)
SetToggleOnWithoutNotify(0); SetToggleOnWithoutNotify(0);
if (_noInit)
SetToggelGroupItems();
_mappingDirty = false; _mappingDirty = false;
_noInit = false; _noInit = false;
} }
@@ -572,7 +593,7 @@ namespace XericLibrary.Runtime.MacroLibrary
/// <param name="index"></param> /// <param name="index"></param>
public void SetToggleOn(int index) public void SetToggleOn(int index)
{ {
if (0 < index && index < ToggleList.Count) if (0 <= index && index < ToggleList.Count)
{ {
SetToggleOn(ToggleList[index]); SetToggleOn(ToggleList[index]);
} }
+7 -1
View File
@@ -209,7 +209,7 @@ namespace Deconstruction.UI.TmpText
/// </summary> /// </summary>
/// <param name="forceRefesh">强制刷新,如果刷新过一次,之后不论设定如何都将直接从缓存中返回对象,置位将跳过这个缓存</param> /// <param name="forceRefesh">强制刷新,如果刷新过一次,之后不论设定如何都将直接从缓存中返回对象,置位将跳过这个缓存</param>
/// <param name="requirementHyperlink">强制给带有link标记的对象加上超链接组件</param> /// <param name="requirementHyperlink">强制给带有link标记的对象加上超链接组件</param>
/// <param name="includeRepeatedMarking">包括重复标记(也就是是否包含另一个超链接管理器作用域下的超链接对象)</param> /// <param name="includeRepeatedMarking">是否包含重复引用的链接(是否包含当前超链接管理器下其他超链接管理器作用域下的超链接对象)</param>
/// <returns></returns> /// <returns></returns>
public List<TMPHyperlinkReceiver> GetChildrenTmpText2Hyperlink( public List<TMPHyperlinkReceiver> GetChildrenTmpText2Hyperlink(
bool forceRefesh = false, bool forceRefesh = false,
@@ -255,5 +255,11 @@ namespace Deconstruction.UI.TmpText
return result; return result;
} }
#if ODIN_INSPECTOR
[Button]
#endif
public void RefreshHyperLink()
=> GetChildrenTmpText2Hyperlink(true);
} }
} }
Binary file not shown.
+25 -47
View File
@@ -3669,6 +3669,15 @@
<param name="interpolationSyntax">内插语法,表示此foreachdo不会作为执行器运行,而是作为其中一步执行</param> <param name="interpolationSyntax">内插语法,表示此foreachdo不会作为执行器运行,而是作为其中一步执行</param>
<returns>返回值可能是有效的,根据是否启用内插来判断</returns> <returns>返回值可能是有效的,根据是否启用内插来判断</returns>
</member> </member>
<member name="M:XericLibrary.Runtime.MacroLibrary.MacroMath.Repeat``1(``0,System.Int32)">
<summary>
重复对象
</summary>
<typeparam name="T"></typeparam>
<param name="source"></param>
<param name="repeatEachCount"></param>
<returns></returns>
</member>
<member name="M:XericLibrary.Runtime.MacroLibrary.MacroMath.Repeat``1(System.Collections.Generic.IEnumerable{``0},System.Int32)"> <member name="M:XericLibrary.Runtime.MacroLibrary.MacroMath.Repeat``1(System.Collections.Generic.IEnumerable{``0},System.Int32)">
<summary> <summary>
重复枚举器中的每个对象 重复枚举器中的每个对象
@@ -12980,7 +12989,7 @@
</member> </member>
<member name="T:XericLibrary.Runtime.Type.Base.HashSetTwins`1"> <member name="T:XericLibrary.Runtime.Type.Base.HashSetTwins`1">
<summary> <summary>
双胞胎哈希表 双生哈希表
</summary> </summary>
</member> </member>
<member name="P:XericLibrary.Runtime.Type.Base.HashSetTwins`1.AValues"> <member name="P:XericLibrary.Runtime.Type.Base.HashSetTwins`1.AValues">
@@ -15762,16 +15771,16 @@
额外代理的单例 额外代理的单例
</summary> </summary>
</member> </member>
<member name="F:XericLibrary.Runtime.Type.SingleMonoBase`1.m_agentSelfInstance">
<summary>
额外代理的单例
</summary>
</member>
<member name="F:XericLibrary.Runtime.Type.SingleMonoBase`1.m_selfInstance"> <member name="F:XericLibrary.Runtime.Type.SingleMonoBase`1.m_selfInstance">
<summary> <summary>
组件自身单例(如果目标源并非自身,则可以使用自身引用获取) 组件自身单例(如果目标源并非自身,则可以使用自身引用获取)
</summary> </summary>
</member> </member>
<member name="F:XericLibrary.Runtime.Type.SingleMonoBase`1.m_agentSelfInstance">
<summary>
额外代理的单例
</summary>
</member>
<member name="F:XericLibrary.Runtime.Type.SingleMonoBase`1.specificRuntimeClassInstance"> <member name="F:XericLibrary.Runtime.Type.SingleMonoBase`1.specificRuntimeClassInstance">
<summary> <summary>
具体的运行时定义实例 具体的运行时定义实例
@@ -16160,6 +16169,16 @@
移除此处的单例实例 移除此处的单例实例
</summary> </summary>
</member> </member>
<member name="M:XericLibrary.Runtime.Type.SingleMonoBase`1.DestroyExistInstance">
<summary>
移除已有的单例实例,以当前代理实例为准
</summary>
</member>
<member name="M:XericLibrary.Runtime.Type.SingleMonoBase`1.DestoryThisInstance">
<summary>
移除当前代理实例,以首个单例实例为准
</summary>
</member>
<member name="M:XericLibrary.Runtime.Type.SingleMonoBase`1.AssignInstance(`0)"> <member name="M:XericLibrary.Runtime.Type.SingleMonoBase`1.AssignInstance(`0)">
<summary> <summary>
手动指派一个实例到此 手动指派一个实例到此
@@ -16301,23 +16320,12 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="F:XericLibrary.Runtime.Type.WeaklyMonoBase.rectTransform">
<summary>
此处的矩形变换组件
</summary>
</member>
<member name="M:XericLibrary.Runtime.Type.WeaklyMonoBase.GetWeaklyRectTransform"> <member name="M:XericLibrary.Runtime.Type.WeaklyMonoBase.GetWeaklyRectTransform">
<summary> <summary>
定义如何获取弱矩形变换组件,用于重载所有弱变换组件检查 定义如何获取弱矩形变换组件,用于重载所有弱变换组件检查
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:XericLibrary.Runtime.Type.WeaklyMonoBase.GetWeaklyTransform">
<summary>
定义如何获取弱变换组件,用于重载所有弱变换组件检查
</summary>
<returns></returns>
</member>
<member name="M:XericLibrary.Runtime.Type.WeaklyMonoBase.GetWeaklyGameObject"> <member name="M:XericLibrary.Runtime.Type.WeaklyMonoBase.GetWeaklyGameObject">
<summary> <summary>
定义如何获取此弱游戏对象, 用于重载所有弱游戏对象检查 定义如何获取此弱游戏对象, 用于重载所有弱游戏对象检查
@@ -16336,36 +16344,6 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="P:XericLibrary.Runtime.Type.WeaklyMonoBase.WeaklyPosition">
<summary>
定义此弱三维坐标,用于重载所有弱检查
</summary>
<returns></returns>
</member>
<member name="P:XericLibrary.Runtime.Type.WeaklyMonoBase.WeaklyRotation">
<summary>
定义此弱三维旋转,用于重载所有弱检查
</summary>
<returns></returns>
</member>
<member name="P:XericLibrary.Runtime.Type.WeaklyMonoBase.WeaklyScale">
<summary>
定义此弱三维缩放,用于重载所有弱检查
</summary>
<returns></returns>
</member>
<member name="P:XericLibrary.Runtime.Type.WeaklyMonoBase.WeaklyAnchoredPosition3">
<summary>
定义此弱界面三维坐标,用于重载所有弱检查
</summary>
<returns></returns>
</member>
<member name="P:XericLibrary.Runtime.Type.WeaklyMonoBase.WeaklyAnchoredPosition">
<summary>
定义此弱界面坐标,用于重载所有弱检查
</summary>
<returns></returns>
</member>
<member name="M:XericLibrary.Runtime.Type.WeaklyMonoBaseExtend.IsNull(XericLibrary.Runtime.Type.WeaklyMonoBase)"> <member name="M:XericLibrary.Runtime.Type.WeaklyMonoBaseExtend.IsNull(XericLibrary.Runtime.Type.WeaklyMonoBase)">
<summary> <summary>
如果目标为空 如果目标为空
+2 -2
View File
File diff suppressed because one or more lines are too long