hch
21 小时以前 3453d7916e0cb873b9c8423b7a0040123101f628
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
 
 
/// <summary>
/// 武将技能界面
/// </summary>
public class HeroSkillWin : UIBase
{
    [SerializeField] RectTransform bg;
    [SerializeField] SkillBaseCell normalSkillCell;
    [SerializeField] Text nameText;
    [SerializeField] Text skillTypeText;
    [SerializeField] RichText descText;
 
    [SerializeField] SkillBaseCell angerSkillCell;
    [SerializeField] Text name2Text;
    [SerializeField] Text skillType2Text;
    [SerializeField] RichText desc2Text;
 
 
    int heroID;
 
    protected override void OnPreOpen()
    {
        heroID = functionOrder;
        Refresh();
 
        
    }
 
    protected override void NextFrameAfterOpen()
    {
        ForceRefreshLayout().Forget();
    }
 
 
    public override void Refresh()
    {
        var heroConfig = HeroConfig.Get(heroID);
        if (!SkillConfig.HasKey(heroConfig.AtkSkillID))
            return;
        normalSkillCell.Init(heroConfig.AtkSkillID);
        var skillConfig = SkillConfig.Get(heroConfig.AtkSkillID);
        nameText.text = skillConfig.SkillName;
        skillTypeText.text = Language.Get("L1100", Language.Get("L1108"), Language.Get(skillConfig.FuncType == 1 ? "HeroSkillType_1" : "HeroSkillType_2"));
        descText.text = skillConfig.Description;
 
        angerSkillCell.Init(heroConfig.AngerSkillID);
        var skillConfig2 = SkillConfig.Get(heroConfig.AngerSkillID);
        name2Text.text = skillConfig2.SkillName;
        skillType2Text.text = Language.Get("L1100", Language.Get("L1108"), Language.Get(skillConfig2.FuncType == 1 ? "HeroSkillType_1" : "HeroSkillType_2"));
        desc2Text.text = skillConfig2.Description;
    }
 
    async UniTask ForceRefreshLayout()
    {
        await UniTask.DelayFrame(2);
        LayoutRebuilder.ForceRebuildLayoutImmediate(bg);
        // 刷新所有Layout组件
        await UniTask.Delay(100);
        // 刷新所有Layout组件
        LayoutRebuilder.ForceRebuildLayoutImmediate(bg);
    }
}