hch
5 天以前 0fcd4e99286827bdb32e68e98ebe83377b50a4a9
0312 强制刷新武将属性界面排版
1个文件已修改
36 ■■■■ 已修改文件
Main/System/HeroUI/HeroAllAttrWin.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroUI/HeroAllAttrWin.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
@@ -9,11 +10,12 @@
/// </summary>
public class HeroAllAttrWin : UIBase
{
    [SerializeField] GameObject baseAttrGroup;
    [SerializeField] GameObject fightAttrGroup;
    [SerializeField] GameObject fightAntiAttrGroup;
    [SerializeField] GameObject specialAttrGroup;
    [SerializeField] Transform allContent;
    [SerializeField] GameObject baseAttrGroup;
    [SerializeField] GameObject fightAttrGroup;
    [SerializeField] GameObject fightAntiAttrGroup;
    [SerializeField] GameObject specialAttrGroup;
    Dictionary<int, Button> attrBtns = new Dictionary<int, Button>();
@@ -93,9 +95,11 @@
            {
                SmallTipWin.showText = PlayerPropertyConfig.Get(id).desc;
                SmallTipWin.worldPos = CameraManager.uiCamera.ScreenToWorldPoint(Input.mousePosition);
                UIManager.Instance.OpenWindow<SmallTipWin>();
                UIManager.Instance.OpenWindow<SmallTipWin>();
            });
        }
        ForceRefreshLayout();
    }
@@ -123,4 +127,24 @@
    }
    /// <summary>
    /// 强制刷新Layout,解决嵌套Layout和ContentSizeFitter的重叠问题
    /// </summary>
    async UniTask ForceRefreshLayout()
    {
        await UniTask.DelayFrame(2);
        // 刷新所有Layout组件
        var layouts = allContent.GetComponentsInChildren<LayoutGroup>(true);
        foreach (var layout in layouts)
        {
            LayoutRebuilder.ForceRebuildLayoutImmediate(layout.GetComponent<RectTransform>());
        }
        await UniTask.DelayFrame(2);
        // 刷新所有Layout组件
        foreach (var layout in layouts)
        {
            LayoutRebuilder.ForceRebuildLayoutImmediate(layout.GetComponent<RectTransform>());
        }
    }
}