| | |
| | | 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; |
| | |
| | | _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(); |
| | | } |
| | |
| | | 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; |
| | |
| | | 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); |