using UnityEngine; using UnityEngine.UI; using DG.Tweening; using System; //实装的显示 public class MinggeEquipCell : MonoBehaviour { [SerializeField] UIEffectPlayer loopEffect; [SerializeField] Text posNameText; [SerializeField] Text lvText; [SerializeField] Image iconImage; [SerializeField] Image skillImage; //只有带意象技能才显示 [SerializeField] UIEffectPlayer activeEffect; [SerializeField] Button button; [SerializeField] Transform flyStartObj; [Header("命格装备位")] public int equipIndex; string lastGuid = "uninit"; public void Display() { var presetID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType((int)BattlePreSetType.Story, (int)FuncPresetType.Mingge); var packIndex = MinggeManager.Instance.GetPackIndex(presetID, equipIndex);//对应卦玉背包索引 var item = PackManager.Instance.GetItemByIndex(PackType.Mingge, packIndex); if (item == null) { loopEffect?.Stop(); posNameText.text = Language.Get($"MinggeGird{equipIndex}"); iconImage.SetActive(false); button.RemoveAllListeners(); lastGuid = ""; return; } posNameText.text = ""; iconImage.SetActive(true); int itemID = item.config.ID; iconImage.SetItemSprite(itemID); if (equipIndex <= 4 && skillImage != null) { skillImage.SetActive(true); var skillID = EquipModel.Instance.GetEquipSkillID(item); if (skillID != 0) { skillImage.SetSprite($"MinggeSkill_{skillID}"); var index = Array.IndexOf(EffectConfig.Get(loopEffect.effectId).animIndex, skillID); loopEffect.Play(index); } else { skillImage.SetActive(false); loopEffect.Stop(); } } else { skillImage.SetActive(false); } lvText.text = EquipModel.Instance.GetEquipLV(item).ToString(); button.AddListener(() => { ItemTipUtility.Show(item.guid); }); if (lastGuid == "uninit") { lastGuid = item.guid; } else if (lastGuid != item.guid) { lastGuid = item.guid; PlayEffect(); } } public void PlayEffect() { iconImage.transform.position = flyStartObj.position; iconImage.transform.DOLocalMove(Vector3.zero, 0.2f).SetEase(Ease.InQuad).OnComplete(() => { activeEffect.Play(); }); } }