lcy
3 天以前 e19bcaa7ced9d17f7dae4672ae0c41710e178a60
Main/System/Equip/EquipTipWin.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
@@ -26,18 +27,46 @@
    [SerializeField] RectTransform bgRect;
    ItemModel equip;
    ItemConfig customEquipItemConfig;
    AppointItemConfig customEquipAppointItemConfig;
    protected override void OnPreOpen()
    {
        equip = PackManager.Instance.GetItemByGuid(ItemTipUtility.mainTipData.guid);
        Display(equip);
        bool isShowCustomEquip = ItemTipUtility.isShowCustomEquip;
        if (isShowCustomEquip)
        {
            int customEquipItemId = ItemTipUtility.customEquipItemId;
            int customEquipAppointItemId = ItemTipUtility.customEquipAppointItemId;
            if (!ItemConfig.HasKey(customEquipItemId))
                return;
            if (!AppointItemConfig.HasKey(customEquipAppointItemId))
                return;
            customEquipItemConfig = ItemConfig.Get(customEquipItemId);
            customEquipAppointItemConfig = AppointItemConfig.Get(customEquipAppointItemId);
            Display(customEquipItemConfig, customEquipAppointItemConfig);
        }
        else
        {
            equip = PackManager.Instance.GetItemByGuid(ItemTipUtility.mainTipData.guid);
            Display(equip);
        }
    }
    protected override void OnOpen()
    {
        //先缩小,这样不会因为间隔帧产生明显的闪烁
        uieffect.transform.localScale = Vector3.zero;
        //特效显示依赖rect的排版,放在下一帧
        RefreshEffect(equip).Forget();
        bool isShowCustomEquip = ItemTipUtility.isShowCustomEquip;
        if (isShowCustomEquip)
        {
            RefreshEffect(customEquipItemConfig).Forget();
        }
        else
        {
            //特效显示依赖rect的排版,放在下一帧
            RefreshEffect(equip).Forget();
        }
    }
    protected override void OnPreClose()
@@ -101,9 +130,64 @@
    }
    public void Display(ItemConfig itemConfig, AppointItemConfig appointItemConfig)
    {
        equipImage.SetOrgSprite(itemConfig.IconKey);
        itemName.text = UIHelper.AppendColor(itemConfig.ItemColor, itemConfig.ItemName, true, 1);
        itemNameOutline.OutlineColor = UIHelper.GetUIOutlineColor(itemConfig.ItemColor);
        qualityName.text = UIHelper.GetQualityNameWithColor(itemConfig.ItemColor, Language.Get("equipQualityFormat"));
        qualityNameOutline.OutlineColor = UIHelper.GetUIOutlineColor(itemConfig.ItemColor);
        placeName.text = EquipModel.Instance.GetEquipPlaceName(itemConfig.EquipPlace);
        lvText.text = Language.Get("EquipExchangeWin7", appointItemConfig.ItemLV);
        bgFlower.color = UIHelper.GetUIColor(itemConfig.ItemColor);
        var baseAttrs = appointItemConfig.BaseAttrID.ToList();
        var baseValues = appointItemConfig.BaseAttrValue.ToList();
        var fightAttrs = appointItemConfig.LegendAttrID.ToList();
        var fightValues = appointItemConfig.LegendAttrValue.ToList();
        for (var i = 0; i < baseAttrNames.Count; i++)
        {
            if (i >= baseAttrs.Count)
            {
                baseAttrNames[i].text = "";
                baseAttrValues[i].text = "";
            }
            else
            {
                baseAttrNames[i].text = PlayerPropertyConfig.Get(baseAttrs[i]).Name;
                baseAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(baseAttrs[i], baseValues[i]);
            }
        }
        if (fightAttrs.IsNullOrEmpty())
        {
            fightAttrGameObj.SetActive(false);
        }
        else
        {
            fightAttrGameObj.SetActive(true);
            for (var i = 0; i < fightAttrNames.Count; i++)
            {
                if (i >= fightAttrs.Count)
                {
                    fightAttrNames[i].SetActive(false);
                }
                else
                {
                    fightAttrNames[i].SetActive(true);
                    fightAttrNames[i].text = PlayerPropertyConfig.Get(fightAttrs[i]).Name;
                    fightAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(fightAttrs[i], fightValues[i]);
                }
            }
        }
    }
    //延迟处理特效大小
    async UniTask RefreshEffect(ItemModel equip)
    {
    {
        await UniTask.DelayFrame(3);
        int effectID = EquipModel.Instance.equipUIEffects[Math.Min(equip.config.ItemColor, EquipModel.Instance.equipUIEffects.Length) - 1];
        if (effectID == 0)
@@ -119,6 +203,24 @@
        }
    }
    //延迟处理特效大小
    async UniTask RefreshEffect(ItemConfig itemConfig)
    {
        await UniTask.DelayFrame(3);
        int effectID = EquipModel.Instance.equipUIEffects[Math.Min(itemConfig.ItemColor, EquipModel.Instance.equipUIEffects.Length) - 1];
        if (effectID == 0)
        {
            uieffect.Stop();
        }
        else
        {
            uieffect.effectId = effectID;
            //计算高度缩放比例 特效显示依赖rect的排版
            uieffect.transform.localScale = new Vector3(0.98f, bgRect.rect.height / uieffect.GetComponent<RectTransform>().rect.height, 1);
            uieffect.Play();
        }
    }
}