using System; using cfg; using TMPro; using UnityEngine; using UnityEngine.UI; namespace UI.PartnerGather.Mining { public class EventPartnerSpinItemView : MonoBehaviour { private Transform highlight; private Transform prize_nml; private Transform prize_medium; private Transform prize_super; private Transform prize_free; private Transform prize_more; // 调试 private TMP_Text _textId; private TMP_Text _textIndex; // private int _dataId; private void Awake() { prize_nml = transform.Find("prize/prize_nml"); prize_medium = transform.Find("prize/prize_medium"); prize_super = transform.Find("prize/prize_super"); prize_free = transform.Find("prize/prize_free"); prize_more = transform.Find("prize/prize_more"); highlight = transform.Find("prize/height"); _textId = transform.Find("prize/text_id").GetComponent(); _textIndex = transform.Find("prize/text_index").GetComponent(); } public void Bind(EventPartnerSpinPoint data,int index) { // Log($"OldId :{_dataId} : new {data.ID}"); var param = data.SpinPointParam; _dataId = data.ID; _textId.text = _dataId.ToString(); _textIndex.text = index.ToString(); switch (param) { case FreeSpinPoint point: prize_nml.gameObject.SetActive(false); prize_medium.gameObject.SetActive(false); prize_super.gameObject.SetActive(false); prize_free.gameObject.SetActive(true); prize_more.gameObject.SetActive(false); UpdateText(prize_free,point.SpinPoints.ToString()); break; case MoreSpinPoint point: prize_nml.gameObject.SetActive(false); prize_medium.gameObject.SetActive(false); prize_super.gameObject.SetActive(false); prize_free.gameObject.SetActive(false); prize_more.gameObject.SetActive(true); UpdateText(prize_more,Mathf.Round(point.BonusPercent * 100) + "%"); break; case NormalSpinPoint point: prize_nml.gameObject.SetActive(true); prize_medium.gameObject.SetActive(false); prize_super.gameObject.SetActive(false); prize_free.gameObject.SetActive(false); prize_more.gameObject.SetActive(false); UpdateText(prize_nml,point.SpinPoints.ToString()); break; } void UpdateText(Transform rootUI,string content) { var label = rootUI.GetComponentInChildren(true); if (label) { label.text = content; } } } public void SetSelected(bool on) { Log($"SetSelected-> {on}"); if (highlight) { highlight.gameObject.SetActive(on); } } private static void Log(object t) { Debug.Log($"EventPartnerSpinItemView -> {t} "); } public void UpdateSelected(int targetId) { if (highlight) { highlight.gameObject.SetActive(_dataId == targetId); } } } }