yyl
2026-02-11 3f2cd27c5dfb3b450245bf1a37fc1b3414031c7c
Main/System/HeroUI/HeroHeadBaseCell.cs
@@ -2,6 +2,7 @@
using UnityEngine.UI;
using UnityEngine.Events;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
public class HeroHeadBaseCell : MonoBehaviour
{
@@ -197,6 +198,68 @@
    }
    // 武将小头像 Async版本
    public async UniTask InitAsync(int heroID, int skinID, int star = 0, int awakelv = 0, int lv = 0, UnityAction onclick = null)
    {
        LoadPrefab();   //存在被卸载的可能,重新加载
        if (onclick != null)
        {
            clickBtn.AddListener(onclick);
        }
        var heroConfig = HeroConfig.Get(heroID);
        qualityBG.SetSprite("heroheadBG" + heroConfig.Quality);
        // int skinID = 0;
        // if (heroGuid != "")
        // {
        //     skinID = HeroManager.Instance.GetHero(heroGuid).SkinID;
        // }
        // else
        // {
        //     skinID = heroConfig.SkinIDList[0];
        // }
        var sprite = await UILoader.LoadSpriteAsync("HeroHead", HeroSkinConfig.Get(skinID).SquareIcon);
        if (this == null) return;
        if (sprite == null)
        {
            // 内网未配置时
            heroIcon.SetSprite("herohead_default");
        }
        else
        {
            heroIcon.overrideSprite = sprite;
        }
        if (star == 0)
        {
            starRect.SetActive(false);
        }
        else
        {
            starRect.SetActive(true);
            for (int i = 0; i < starsImg.Count; i++)
            {
                if ((star - 1) % starsImg.Count >= i)
                {
                    starsImg[i].SetActive(true);
                    starsImg[i].SetSprite("herostar" + (((star - 1) / starsImg.Count) + 1) * starsImg.Count);
                }
                else
                {
                    starsImg[i].SetActive(false);
                }
            }
        }
        countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
        lvText.text = lv == 0 ? "" : Language.Get("L1094") + lv;
        awakeLvRect.SetActive(awakelv > 0);
        awakeLvText.text = awakelv.ToString();
    }
    GameObject cellContainer;
    protected void LoadPrefab()
    {