diff --git a/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/encodings.xml b/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/encodings.xml deleted file mode 100644 index df87cf9..0000000 --- a/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/encodings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/indexLayout.xml b/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/indexLayout.xml deleted file mode 100644 index 7b08163..0000000 --- a/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/indexLayout.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/projectSettingsUpdater.xml b/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/projectSettingsUpdater.xml deleted file mode 100644 index 4bb9f4d..0000000 --- a/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/projectSettingsUpdater.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/vcs.xml b/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/vcs.xml deleted file mode 100644 index b2bdec2..0000000 --- a/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/workspace.xml b/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/workspace.xml deleted file mode 100644 index fe192f3..0000000 --- a/Runtime/HorizonLineOrbit/.idea/.idea.HorizonLineOrbit.dir/.idea/workspace.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - { - "associatedIndex": 7 -} - - - - - - - - - 1740962660807 - - - - - - - - \ No newline at end of file diff --git a/Runtime/HorizonLineOrbit/SesothoPeManager.cs b/Runtime/HorizonLineOrbit/SesothoPeManager.cs index 0ae6d35..5a69311 100644 --- a/Runtime/HorizonLineOrbit/SesothoPeManager.cs +++ b/Runtime/HorizonLineOrbit/SesothoPeManager.cs @@ -176,8 +176,8 @@ namespace SesothoLine // һĿλ if (TrackingTool.EnableTool || TrackingTool._enableAuxiliaryTool) { - MacroDebugDraw.DrawDownArrow(NearestPoint, Color.magenta); - MacroDebugDraw.DrawDownArrow(NearestLineTangentPoint, Color.green); + MacroDebugDraw.DrawDownArrow(NearestPoint, Quaternion.identity, Color.magenta); + MacroDebugDraw.DrawDownArrow(NearestLineTangentPoint, Quaternion.identity, Color.green); } } diff --git a/Runtime/HorizonLineOrbit/TerminalLine2T3.cs b/Runtime/HorizonLineOrbit/TerminalLine2T3.cs index 8cffa6d..83137d0 100644 --- a/Runtime/HorizonLineOrbit/TerminalLine2T3.cs +++ b/Runtime/HorizonLineOrbit/TerminalLine2T3.cs @@ -87,7 +87,7 @@ namespace SesothoLine foreach (var index in indexs.Indexs) { MacroDebugDraw.DrawDownArrow( - index.GetCellWorldIndexPosition() + MacroMath.RandomVector3(0.1f, Identifier), + index.GetCellWorldIndexPosition() + MacroMath.RandomVector3(0.1f, Identifier), Quaternion.identity, Color.red); } } diff --git a/Runtime/UI/MacroUI.cs b/Runtime/UI/MacroUI.cs index b0724df..cf0ff62 100644 --- a/Runtime/UI/MacroUI.cs +++ b/Runtime/UI/MacroUI.cs @@ -3,14 +3,12 @@ using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; - using TMPro; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; using XericLibrary.Runtime.CustomEditor; using Object = UnityEngine.Object; - using Sirenix.OdinInspector; #if UNITY_EDITOR using Sirenix.Utilities.Editor; @@ -25,27 +23,28 @@ namespace XericLibrary.Runtime.MacroLibrary { #region toggle 扩展 - private static FieldInfo togglesFieldInfo = typeof(ToggleGroup).GetField("m_Toggles", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + private static FieldInfo togglesFieldInfo = typeof(ToggleGroup).GetField("m_Toggles", + BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); public static List GetToggles(this ToggleGroup toggleGroup) { - if (toggleGroup == null) - { - throw new ArgumentNullException(nameof(toggleGroup)); - } - - if (togglesFieldInfo == null) - { - throw new InvalidOperationException("Unable to access the 'm_Toggles' field."); - } - - var toggles = togglesFieldInfo.GetValue(toggleGroup) as List; - if (toggles == null) - { - throw new InvalidCastException("The 'm_Toggles' field is not of type List."); - } - - return toggles; + if (toggleGroup == null) + { + throw new ArgumentNullException(nameof(toggleGroup)); + } + + if (togglesFieldInfo == null) + { + throw new InvalidOperationException("Unable to access the 'm_Toggles' field."); + } + + var toggles = togglesFieldInfo.GetValue(toggleGroup) as List; + if (toggles == null) + { + throw new InvalidCastException("The 'm_Toggles' field is not of type List."); + } + + return toggles; // return (List)togglesFieldInfo.GetValue(toggleGroup); } @@ -78,7 +77,6 @@ namespace XericLibrary.Runtime.MacroLibrary return toggleGroup.GetToggles().Count; } - /// /// 在单选项组上注册一个事件,当组中的任意成员变成激活状态时调用(其他的不会发生调用)。 @@ -96,6 +94,7 @@ namespace XericLibrary.Runtime.MacroLibrary }); } } + /// /// 清空单选项组中的所有事件(与注册所有事件对应,但那个事件没法单独注销) /// @@ -107,7 +106,7 @@ namespace XericLibrary.Runtime.MacroLibrary toggle.onValueChanged.RemoveAllListeners(); } } - + #region toggle 索引 /// @@ -136,29 +135,28 @@ namespace XericLibrary.Runtime.MacroLibrary #region 字段属性 [LabelText("单选组")] public ToggleGroup ToggleGroup; - - [SerializeField, LabelText("编辑单选项目顺序")] - [ListDrawerSettings(OnTitleBarGUI = "GetAndSortToggle")] + + [SerializeField, LabelText("编辑单选项目顺序")] [ListDrawerSettings(OnTitleBarGUI = "GetAndSortToggle")] private List toggleList = new List(); - + // 当前选中的项目 private int nowSelectToggleIndex = 0; private Toggle nowSelectToggle = null; - - + + public Transform TogglesContext => ToggleGroup.transform; - + /// /// 当前选中的toggle索引 /// public int NowSelectToggleIndex => nowSelectToggleIndex; - + /// /// 当前选中的toggle /// public Toggle NowSelectToggle => nowSelectToggle; - + /// /// 获取并给列表排序(顺序不一定与拼音有关) /// @@ -168,11 +166,7 @@ namespace XericLibrary.Runtime.MacroLibrary // 自动获取并排序 if (SirenixEditorGUI.ToolbarButton(EditorIcons.Refresh)) { - var newToggleList = MacroSort.FullCharacterOrderSort(ToggleGroup.GetToggles(), a => a.name).ToList(); - if (newToggleList.Count <= 0 || newToggleList == null) - Debug.LogError("如果无法更新获取自动排序toggle,可能是因为toggleGroup被隐藏了,手动将其激活后再获取即可。"); - else - toggleList = newToggleList; + GetSortToggle(); } // 反转顺序 if (SirenixEditorGUI.ToolbarButton(EditorIcons.TriangleDown)) @@ -180,12 +174,17 @@ namespace XericLibrary.Runtime.MacroLibrary toggleList.Reverse(); } #else - var newToggleList = MacroSort.FullCharacterOrderSort(ToggleGroup.GetToggles(), a => a.name).ToList(); + GetSortToggle(); +#endif + void GetSortToggle() + { + var newToggleList = MacroSort.FullCharacterOrderSort(ToggleGroup.GetToggles(), a => a.name) + .ToList(); if (newToggleList.Count <= 0 || newToggleList == null) Debug.LogError("如果无法更新获取自动排序toggle,可能是因为toggleGroup被隐藏了,手动将其激活后再获取即可。"); else toggleList = newToggleList; -#endif + } } #endregion @@ -226,7 +225,7 @@ namespace XericLibrary.Runtime.MacroLibrary // 未指定组时,说明压根没用这部分功能,用不着初始化。 if (ToggleGroup == null) return; - + // 防呆警告 if (toggleList.Count <= 0) { @@ -237,13 +236,14 @@ namespace XericLibrary.Runtime.MacroLibrary Debug.LogWarning($"在初始化单选项组时,{ToggleGroup.name}并未预先指定索引顺序,将默认使用大纲顺序。"); } } + // 事件初始化 for (int i = 0; i < toggleList.Count; i++) { var toggle = toggleList[i]; - + ToggleAddEvent(toggle); - + if (toggle.isOn) { nowSelectToggleIndex = i; @@ -263,12 +263,12 @@ namespace XericLibrary.Runtime.MacroLibrary public int AddToggle(Toggle t) { ToggleAddEvent(t); - + var resultIndex = toggleList.Count; toggleList.Add(t); return resultIndex; } - + /// /// 移除一个toggle,这不会影响其他toggle的索引,但此处移除的位置会为空。 /// @@ -282,12 +282,12 @@ namespace XericLibrary.Runtime.MacroLibrary var index = toggleList.IndexOf(t); if (index < 0) return false; - - t.onValueChanged.RemoveAllListeners(); + + t.onValueChanged.RemoveAllListeners(); toggleList[index] = null; return true; } - + /// /// 清除toggle /// @@ -300,11 +300,11 @@ namespace XericLibrary.Runtime.MacroLibrary if (allowDestroy) Object.Destroy(t); } + toggleList.Clear(); } - - + /// /// toggle注册的事件,只有当按下时才需要调用此事件。 /// @@ -316,7 +316,7 @@ namespace XericLibrary.Runtime.MacroLibrary if (a) ToggleRegister(t); }); } - + /// /// toggle注册的事件,只有当按下时才需要调用此事件。 /// @@ -328,9 +328,8 @@ namespace XericLibrary.Runtime.MacroLibrary OnAnyToggleSwitchOn?.Invoke(t); OnAnyToggleIndexSwitchOn?.Invoke(nowSelectToggleIndex); } - - - + + /// /// 获取toggle代表的索引 /// @@ -361,6 +360,7 @@ namespace XericLibrary.Runtime.MacroLibrary { target.isOn = true; } + /// /// 设置单选项激活 /// @@ -372,6 +372,7 @@ namespace XericLibrary.Runtime.MacroLibrary SetToggleOn(toggleList[index]); } } + /// /// 设置单选项激活 /// @@ -380,6 +381,7 @@ namespace XericLibrary.Runtime.MacroLibrary { target.SetIsOnWithoutNotify(true); } + /// /// 设置单选项激活 /// @@ -391,7 +393,7 @@ namespace XericLibrary.Runtime.MacroLibrary SetToggleOnWithoutNotify(toggleList[index]); } } - + /// /// 清除映射结构(不会清除toggle实例) @@ -411,11 +413,11 @@ namespace XericLibrary.Runtime.MacroLibrary { Object.Destroy(toggleList[i]); } + Clear(); } #endregion - } #endregion @@ -485,8 +487,8 @@ namespace XericLibrary.Runtime.MacroLibrary /// /// /// - public static RectTransform RectTransform(this T target) - where T : Component + public static RectTransform RectTransform(this T target) + where T : Component => target.transform as RectTransform; #endregion