update 0.5.8

This commit is contained in:
2026-06-24 15:16:59 +08:00
parent a71f9cfc93
commit f8edda498e
31 changed files with 1213 additions and 30 deletions
+25 -9
View File
@@ -6,26 +6,42 @@ using UnityEngine;
using UnityEngine.UI;
using XericLibrary.Runtime.MacroLibrary;
namespace DigitalTwinTool
namespace Deconstruction.Runtime
{
public static class MacroLayout
{
/// <summary>
/// 将布局组标记为脏,以触发重算。
/// 将布局组标记为脏,以触发重算布局。
/// </summary>
/// <param name="layoutGroup"></param>
public static void SetDirty(this LayoutGroup layoutGroup)
public static void SetLayoutDirty(this LayoutGroup layoutGroup)
{
var type = typeof(LayoutGroup);
var method = type.GetMethod("SetDirty", BindingFlags.Instance | BindingFlags.NonPublic);
method?.Invoke(layoutGroup, null);
// var type = typeof(LayoutGroup);
// var method = type.GetMethod("SetDirty", BindingFlags.Instance | BindingFlags.NonPublic);
// method?.Invoke(layoutGroup, null);
LayoutRebuilder.ForceRebuildLayoutImmediate(layoutGroup.RectTransform());
}
private static HashSet<RectTransform> _rebuildSet = new HashSet<RectTransform>();
public static void WaitParentLayoutRebuild(this MonoBehaviour script)
/// <summary>
/// 将canvas组件白哦及为脏,以触发canvas充算布局
/// </summary>
/// <param name="rectTrans"></param>
public static void SetLayoutDirty(this RectTransform rectTrans)
{
LayoutRebuilder.ForceRebuildLayoutImmediate(rectTrans);
}
private static HashSet<RectTransform> _rebuildSet = new HashSet<RectTransform>();
/// <summary>
/// 等待这帧过去之后再触发重建
/// </summary>
/// <param name="script"></param>
public static void WaitParentLayoutRebuildThenRebuildAgen(this MonoBehaviour script)
{
if (!script.RectTransform())
return;
script.StartCoroutine(waitForRebuild());
return;
IEnumerator waitForRebuild()
{