hch
12 小时以前 69783a7bc64858681fffe600d6570b7b723032f2
Main/System/HeroDebut/HeroDebutSkinWin.cs
@@ -1,10 +1,11 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HeroDebutSkinWin : UIBase
{
    [SerializeField] float modelScale = 1f;
    [SerializeField] ImageEx bgImage;
    [SerializeField] RawImage bgImage;
    [SerializeField] ImageEx heroNameImage;
    [SerializeField] ImageEx skinInfoImage;
    [SerializeField] ImageEx awardBgImage;
@@ -99,16 +100,23 @@
        _cell.Display(cell.index, arr);
    }
    void CreateAwardScroller(int[][] arr)
    void CreateAwardScroller(int[][] sourceArr)
    {
        this.arr = arr;
        if (sourceArr == null) return;
        // 1. 获取已拥有的 ID 集合 (使用 LINQ 简洁明了)
        var ownedItems = HeroSkinAttrConfig.GetItemList();
        var itemIds = ownedItems != null ? new HashSet<int>(ownedItems) : new HashSet<int>();
        // 2. 过滤掉 items 中已有的项,并直接赋值给成员变量
        // arr[i][0] 假设为判断是否存在于 items 中的 ID
        this.arr = System.Array.FindAll(sourceArr, row => !itemIds.Contains(row[0]));
        // 3. 刷新 UI
        awardScroller.Refresh();
        if (arr != null)
        for (int i = 0; i < this.arr.Length; i++)
        {
            for (int i = 0; i < arr.Length; i++)
            {
                awardScroller.AddCell(ScrollerDataType.Header, i);
            }
            awardScroller.AddCell(ScrollerDataType.Header, i);
        }
        awardScroller.Restart();
    }
@@ -139,8 +147,6 @@
        if (heroConfig == null) return;
        int skinID = manager.currentChooseSkinID;
        var skinArtConfig = ActHeroAppearSkinArtConfig.Get(skinID);
        if (skinArtConfig == null) return;
        var heroSkinAttrConfig = HeroSkinAttrConfig.Get(skinID);
        if (heroSkinAttrConfig == null) return;
@@ -160,16 +166,15 @@
        if (!RechargeManager.Instance.TryGetRechargeCount(ctgId, out var rechargeCount)) return;
        if (!RechargeManager.Instance.TryGetRechargeItem(ctgId, out var rechargeItemList)) return;
        bgImage.SetSprite(skinArtConfig.BGImage);
        bgImage.SetNativeSize();
        bgImage.SetTexture2D(StringUtility.Concat("HeroDebutSkinBG_", skinID.ToString()));
        heroNameImage.SetSprite(skinArtConfig.HeroNameImage);
        heroNameImage.SetSprite(StringUtility.Concat("HeroDebutSkinHeroName_", skinID.ToString()));
        heroNameImage.SetNativeSize();
        skinInfoImage.SetSprite(skinArtConfig.SkinInfoImage);
        skinInfoImage.SetSprite(StringUtility.Concat("HeroDebutSkinInfo_", skinID.ToString()));
        skinInfoImage.SetNativeSize();
        awardBgImage.SetSprite(skinArtConfig.AwardBGImage);
        awardBgImage.SetSprite(StringUtility.Concat("HeroDebutSkinAwardBG_", skinID.ToString()));
        awardBgImage.SetNativeSize();
        uiHeroController.Create(skinID, modelScale);