hch
2025-10-22 af6e207c6d185ed66125e85e18c02c63bea597f9
Main/System/HeroUI/HeroShowBaseCell.cs
@@ -2,11 +2,12 @@
using UnityEngine.UI;
using System.Collections.Generic;
//武将模型站台模块
public class HeroShowBaseCell : MonoBehaviour
{
    Image m_QualityBG;
    Image qualityBG
    Image qualityBG //底座台子
    {
        get
        {
@@ -38,7 +39,7 @@
        {
            if (m_StarRect == null)
            {
                m_StarRect = this.transform.Find("Container_HeroShow/stars");
                m_StarRect = this.transform.Find("Container_HeroShow/layout/layout/stars");
            }
            return m_StarRect;
        }
@@ -54,7 +55,7 @@
                m_StarsImg = new List<Image>();
                for (int i = 0; i < 5; i++)
                {
                    var star = this.transform.GetComponent<Image>("Container_HeroShow/stars/star" + i);
                    var star = this.transform.GetComponent<Image>("Container_HeroShow/layout/layout/stars/star" + i);
                    m_StarsImg.Add(star);
                }
            }
@@ -83,7 +84,7 @@
        {
            if (m_Name == null)
            {
                m_Name = this.transform.GetComponent<Text>("Container_HeroShow/name");
                m_Name = this.transform.GetComponent<Text>("Container_HeroShow/layout/name");
            }
            return m_Name;
        }
@@ -97,23 +98,48 @@
        {
            if (m_LvText == null)
            {
                m_LvText = this.transform.GetComponent<Text>("Container_HeroShow/lv");
                m_LvText = this.transform.GetComponent<Text>("Container_HeroShow/layout/layout/lv");
            }
            return m_LvText;
        }
    }
    OutlineEx m_LvTextOutline;
    OutlineEx heroLVOutline
    {
        get
        {
            if (m_LvTextOutline == null)
            {
                m_LvTextOutline = this.transform.GetComponent<OutlineEx>("Container_HeroShow/layout/layout/lv");
            }
            return m_LvTextOutline;
        }
    }
    OutlineEx heroNameOutline;
    OutlineEx heroLVOutline;
    Button m_StarBtn;
    Button starBtn
    {
        get
        {
            if (m_StarBtn == null)
            {
                m_StarBtn = this.transform.GetComponent<Button>("Container_HeroShow/layout/layout/stars");
            }
            return m_StarBtn;
        }
    }
    void Awake()
    {
        LoadPrefab();
    }
    // 武将小头像,(职业和名称不再此管理,各个界面排版不同)
    public void Init(int heroID, int skinID = 0, int breakLevel = 0, int star = 0, int awakelv = 0, int lv = 0, bool isShowLock = false)
    // 武将模型站台显示
    public void Init(int heroID, int skinID, int breakLevel = 0, int star = 0, int awakelv = 0, int lv = 0, bool isShowLock = false)
    {
        LoadPrefab();   //存在被卸载的可能,重新加载
        var heroConfig = HeroConfig.Get(heroID);
        qualityBG.SetSprite("herodz" + heroConfig.Quality);
        // int skinID = 0;
@@ -154,10 +180,30 @@
        nameText.text = breakLevel == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, breakLevel);
        nameText.color = UIHelper.GetUIColorByFunc(heroConfig.Quality);
        heroNameOutline.colorType = (QualityTextColType)heroConfig.Quality;
        lvText.text = string.Format("{0}{1} {2}", Language.Get("L1094"), lv, awakelv == 0 ? Language.Get("herocard13") : Language.Get("herocard12", awakelv));
        heroLVOutline.colorType = awakelv == 0 ? QualityTextColType.None : QualityTextColType.red;
        if (lv == 0)
        {
            lvText.SetActive(false);
        }
        else
        {
            lvText.SetActive(true);
            if (awakelv == 0)
            {
                lvText.text = string.Format("{0}{1}", Language.Get("L1094"), lv);
            }
            else
            {
                lvText.text = string.Format("{0}{1} {2}", Language.Get("L1094"), lv, Language.Get("herocard12", awakelv));
            }
            heroLVOutline.colorType = awakelv == 0 ? QualityTextColType.None : QualityTextColType.red;
        }
        starBtn.AddListener(() =>
        {
            SmallTipWin.showText = Language.Get("HeroGift14", star);
            SmallTipWin.worldPos = CameraManager.uiCamera.ScreenToWorldPoint(Input.mousePosition);
            UIManager.Instance.OpenWindow<SmallTipWin>();
        });
    }
    GameObject cellContainer;
@@ -184,13 +230,22 @@
        }
        //缩放到和父rect一样大
        var scale = 1f;
        var rect = cellContainer.GetComponent<RectTransform>();
        var parentRect = transform.GetComponent<RectTransform>();
        scale = parentRect.sizeDelta.x / rect.sizeDelta.x;
        cellContainer.transform.localScale = new Vector3(scale, scale, scale);
        heroNameOutline = nameText.GetComponent<OutlineEx>();
        heroLVOutline = lvText.GetComponent<OutlineEx>();
        // var scale = 1f;
        // var rect = cellContainer.GetComponent<RectTransform>();
        // var parentRect = transform.GetComponent<RectTransform>();
        // float width = parentRect.sizeDelta.x;
        // if (width <= 0f)
        // {
        //     //外部控制了尺寸获取为0
        //     GridLayoutGroup grid = GetComponentInParent<GridLayoutGroup>();
        //     if (grid != null)
        //     {
        //         width = grid.cellSize.x;
        //     }
        // }
        // scale = width / rect.sizeDelta.x;
        // cellContainer.transform.localScale = cellContainer.transform.localScale * scale;
    }
}