using UnityEngine; using UnityEngine.UI; public class PhantasmPavilionModelItem : MonoBehaviour { [SerializeField] EllipseMask mask; [SerializeField] ImageEx imgBg; [SerializeField] ImageEx imgFace; [SerializeField] Button btnChoose; [SerializeField] ImageEx imgLimit; [SerializeField] ImageEx imgLock; [SerializeField] ImageEx imgChoose; [SerializeField] ImageEx imgCanUnlock; [SerializeField] TextEx txtUsing; [SerializeField] Image imgRed; readonly PhantasmPavilionType type = PhantasmPavilionType.Model; int id; PhantasmPavilionManager manager { get { return PhantasmPavilionManager.Instance; } } public void Display(int id) { this.id = id; btnChoose.SetListener(() => { manager.selectId = id; }); PhantasmPavilionState state = manager.GetUnLockState(type, id); bool isLimitedTime = manager.IsLimitTime(type, id); bool isUsing = manager.IsUsing(type, id); imgChoose.SetActive(manager.selectId == id); imgLimit.SetActive(state == PhantasmPavilionState.Activated && isLimitedTime); imgLock.SetActive(state != PhantasmPavilionState.Activated); imgCanUnlock.SetActive(state == PhantasmPavilionState.CanActivate); txtUsing.SetActive(state == PhantasmPavilionState.Activated && isUsing); if (!ModelConfig.HasKey(id)) return; ModelConfig model = ModelConfig.Get(id); int skinID = model.SkinID; if (!HeroSkinConfig.HasKey(skinID)) return; HeroSkinConfig skinConfig = HeroSkinConfig.Get(skinID); var sprite = UILoader.LoadSprite("HeroHead", skinConfig.SquareIcon); if (sprite == null) { // 内网未配置时 imgFace.SetSprite("herohead_default"); } else { imgFace.overrideSprite = sprite; } int resourceType = manager.GetResourceType(type, id); string resourceValue = manager.GetResourceValue(type, id); imgBg.SetSprite(model.FaceBg); manager.UpdateItemRedPoint(imgRed, type, id); } }