同步更新
This commit is contained in:
@@ -2,8 +2,8 @@
|
|||||||
"name": "Lrss3.SesothoLine.Editor",
|
"name": "Lrss3.SesothoLine.Editor",
|
||||||
"rootNamespace": "SesothoLineEditor",
|
"rootNamespace": "SesothoLineEditor",
|
||||||
"references": [
|
"references": [
|
||||||
"Lrss3.Deconstruction",
|
"Lrss3.SesothoLine",
|
||||||
"UnityEditor.UI"
|
"Lrss3.Deconstruction"
|
||||||
],
|
],
|
||||||
"includePlatforms": [
|
"includePlatforms": [
|
||||||
"Editor"
|
"Editor"
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+32
-22
@@ -3,19 +3,22 @@ using System.Collections;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Events;
|
using UnityEngine.Events;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using XericLibrary.Runtime.CustomEditor;
|
using XericLibrary.Runtime.CustomEditor;
|
||||||
using Object = UnityEngine.Object;
|
|
||||||
|
|
||||||
|
#if ODIN_INSPECTOR
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
#if UNITY_EDITOR
|
#endif
|
||||||
|
|
||||||
|
#if UNITY_EDITOR && ODIN_INSPECTOR
|
||||||
using Sirenix.Utilities.Editor;
|
using Sirenix.Utilities.Editor;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
using Object = UnityEngine.Object;
|
||||||
|
|
||||||
namespace XericLibrary.Runtime.MacroLibrary
|
namespace XericLibrary.Runtime.MacroLibrary
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -25,7 +28,8 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
{
|
{
|
||||||
#region toggle 扩展
|
#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<Toggle> GetToggles(this ToggleGroup toggleGroup)
|
public static List<Toggle> GetToggles(this ToggleGroup toggleGroup)
|
||||||
{
|
{
|
||||||
@@ -79,7 +83,6 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 在单选项组上注册一个事件,当组中的任意成员变成激活状态时调用(其他的不会发生调用)。
|
/// 在单选项组上注册一个事件,当组中的任意成员变成激活状态时调用(其他的不会发生调用)。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -96,6 +99,7 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 清空单选项组中的所有事件(与注册所有事件对应,但那个事件没法单独注销)
|
/// 清空单选项组中的所有事件(与注册所有事件对应,但那个事件没法单独注销)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -134,11 +138,13 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 字段属性
|
#region 字段属性
|
||||||
|
#if ODIN_INSPECTOR
|
||||||
[LabelText("单选组")] public ToggleGroup ToggleGroup;
|
[LabelText("单选组")]
|
||||||
|
#endif
|
||||||
[SerializeField, LabelText("编辑单选项目顺序")]
|
public ToggleGroup ToggleGroup;
|
||||||
[ListDrawerSettings(OnTitleBarGUI = "GetAndSortToggle")]
|
#if ODIN_INSPECTOR
|
||||||
|
[SerializeField, LabelText("编辑单选项目顺序")] [ListDrawerSettings(OnTitleBarGUI = "GetAndSortToggle")]
|
||||||
|
#endif
|
||||||
private List<Toggle> toggleList = new List<Toggle>();
|
private List<Toggle> toggleList = new List<Toggle>();
|
||||||
|
|
||||||
// 当前选中的项目
|
// 当前选中的项目
|
||||||
@@ -164,15 +170,11 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void GetAndSortToggle()
|
public void GetAndSortToggle()
|
||||||
{
|
{
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR && ODIN_INSPECTOR
|
||||||
// 自动获取并排序
|
// 自动获取并排序
|
||||||
if (SirenixEditorGUI.ToolbarButton(EditorIcons.Refresh))
|
if (SirenixEditorGUI.ToolbarButton(EditorIcons.Refresh))
|
||||||
{
|
{
|
||||||
var newToggleList = MacroSort.FullCharacterOrderSort(ToggleGroup.GetToggles(), a => a.name).ToList();
|
GetSortToggle();
|
||||||
if (newToggleList.Count <= 0 || newToggleList == null)
|
|
||||||
Debug.LogError("如果无法更新获取自动排序toggle,可能是因为toggleGroup被隐藏了,手动将其激活后再获取即可。");
|
|
||||||
else
|
|
||||||
toggleList = newToggleList;
|
|
||||||
}
|
}
|
||||||
// 反转顺序
|
// 反转顺序
|
||||||
if (SirenixEditorGUI.ToolbarButton(EditorIcons.TriangleDown))
|
if (SirenixEditorGUI.ToolbarButton(EditorIcons.TriangleDown))
|
||||||
@@ -180,12 +182,17 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
toggleList.Reverse();
|
toggleList.Reverse();
|
||||||
}
|
}
|
||||||
#else
|
#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)
|
if (newToggleList.Count <= 0 || newToggleList == null)
|
||||||
Debug.LogError("如果无法更新获取自动排序toggle,可能是因为toggleGroup被隐藏了,手动将其激活后再获取即可。");
|
Debug.LogError("如果无法更新获取自动排序toggle,可能是因为toggleGroup被隐藏了,手动将其激活后再获取即可。");
|
||||||
else
|
else
|
||||||
toggleList = newToggleList;
|
toggleList = newToggleList;
|
||||||
#endif
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -237,6 +244,7 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
Debug.LogWarning($"在初始化单选项组时,{ToggleGroup.name}并未预先指定索引顺序,将默认使用大纲顺序。");
|
Debug.LogWarning($"在初始化单选项组时,{ToggleGroup.name}并未预先指定索引顺序,将默认使用大纲顺序。");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 事件初始化
|
// 事件初始化
|
||||||
for (int i = 0; i < toggleList.Count; i++)
|
for (int i = 0; i < toggleList.Count; i++)
|
||||||
{
|
{
|
||||||
@@ -300,11 +308,11 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
if (allowDestroy)
|
if (allowDestroy)
|
||||||
Object.Destroy(t);
|
Object.Destroy(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleList.Clear();
|
toggleList.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// toggle注册的事件,只有当按下时才需要调用此事件。
|
/// toggle注册的事件,只有当按下时才需要调用此事件。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -330,7 +338,6 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取toggle代表的索引
|
/// 获取toggle代表的索引
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -361,6 +368,7 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
{
|
{
|
||||||
target.isOn = true;
|
target.isOn = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置单选项激活
|
/// 设置单选项激活
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -372,6 +380,7 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
SetToggleOn(toggleList[index]);
|
SetToggleOn(toggleList[index]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置单选项激活
|
/// 设置单选项激活
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -380,6 +389,7 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
{
|
{
|
||||||
target.SetIsOnWithoutNotify(true);
|
target.SetIsOnWithoutNotify(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置单选项激活
|
/// 设置单选项激活
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -411,11 +421,11 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
{
|
{
|
||||||
Object.Destroy(toggleList[i]);
|
Object.Destroy(toggleList[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
Clear();
|
Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -486,7 +496,7 @@ namespace XericLibrary.Runtime.MacroLibrary
|
|||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static RectTransform RectTransform<T>(this T target)
|
public static RectTransform RectTransform<T>(this T target)
|
||||||
where T : Component
|
where T : Component
|
||||||
=> target.transform as RectTransform;
|
=> target.transform as RectTransform;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user