using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; public class HeroCollectionCardCell : MonoBehaviour { [SerializeField] Button heroCardBtn; [SerializeField] Image heroCardBG; [SerializeField] UIHeroController heroModel; [SerializeField] List starImgList; [SerializeField] Image countryImg; [SerializeField] Image jobImg; [SerializeField] Text nameText; [SerializeField] Image trainStateImg; [SerializeField] RedpointBehaviour redpoint; [SerializeField] Button bookLVBtn; [SerializeField] GameObject unGetObj; [SerializeField] GameObject activeObj; // 可激活带流光效果材质 public void Display(int index, int quality) { var heroID = HeroUIManager.Instance.heroCollectDict[quality][index]; var heroConfig = HeroConfig.Get(heroID); HB122_tagSCHeroInfo.tagSCHero colData; HeroUIManager.Instance.TryGetHeroBookInfo(heroID, out colData); heroCardBG.SetSprite("herocardbg" + heroConfig.Quality); //分为0未获得、1可激活、2常规、3突破升级、4、星升级、5已满级 int funcState = HeroUIManager.Instance.GetHeroBookState(heroID, quality); activeObj.SetActive(funcState == 1); bookLVBtn.SetActive(funcState > 1); unGetObj.SetActive(funcState == 0); countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country)); jobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(heroConfig.Class)); heroModel.Create(heroConfig.SkinIDList[0], heroConfig.UIScale); redpoint.redpointId = MainRedDot.HeroCardCollectRedpoint * 10000000 + heroID; if (funcState == 3 || funcState == 4) { trainStateImg.SetActive(true); trainStateImg.SetSprite("herofuncstate2"); } else { trainStateImg.SetActive(false); } nameText.text = colData.BookBreakLV == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, colData.BookBreakLV); for (int i = 0; i < starImgList.Count; i++) { if (colData.BookStarLV == 0 && i == 0) { // 无星级 特殊处理 starImgList[i].SetActive(true); starImgList[i].SetSprite("herostar" + colData.BookStarLV); } else if ((colData.BookStarLV - 1) % starImgList.Count >= i) { starImgList[i].SetActive(true); starImgList[i].SetSprite("herostar" + (((colData.BookStarLV - 1) / starImgList.Count) + 1) * starImgList.Count); } else { starImgList[i].SetActive(false); } } heroCardBtn.AddListener(() => { HeroUIManager.Instance.selectCollectHeroID = heroID; var state = HeroUIManager.Instance.GetHeroBookState(heroID, quality); if (state == 1 || state == 3 || state == 4) { UIManager.Instance.OpenWindow(); } else { HeroUIManager.Instance.selectForPreviewHeroID = heroID; UIManager.Instance.OpenWindow(); } }); bookLVBtn.AddListener(() => { HeroUIManager.Instance.selectCollectHeroID = heroID; UIManager.Instance.OpenWindow(); }); } }