yyl
2026-03-04 bc1cb6da854cb2e9144f10ed55330a537ecdca16
Main/System/HeroUI/HeroHeadBaseNoTrainCell.cs
@@ -89,20 +89,22 @@
    void Awake()
    {
        LoadPrefab();
        LoadPrefab().Forget();
    }
    // 武将小头像,(职业和名称不再此管理,各个界面排版不同)
    public void Init(int heroID, bool _gray = false, UnityAction onclick = null)
    public async UniTask Init(int heroID, bool _gray = false, UnityAction onclick = null)
    {
        LoadPrefab();   //存在被卸载的可能,重新加载
        await LoadPrefab();
        clickBtn.AddListener(onclick);
        var heroConfig = HeroConfig.Get(heroID);
        qualityBG.SetSprite("heroheadBG" + heroConfig.Quality);
        var sprite = UILoader.LoadSprite("HeroHead", HeroSkinConfig.Get(heroConfig.SkinIDList[0]).SquareIcon);
        heroIcon.overrideSprite = sprite;
        heroIcon.gray = _gray;
        UILoader.LoadSprite("HeroHead", HeroSkinConfig.Get(heroConfig.SkinIDList[0]).SquareIcon, heroIcon).ContinueWith(() =>
        {
            heroIcon.gray = _gray;
        }).Forget();
        qualityBG.gray = _gray;
        countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
@@ -112,28 +114,9 @@
    }
    public async UniTask InitAsync(int heroID, bool _gray = false, UnityAction onclick = null)
    {
        LoadPrefab();   //存在被卸载的可能,重新加载
        clickBtn.AddListener(onclick);
        var heroConfig = HeroConfig.Get(heroID);
        qualityBG.SetSprite("heroheadBG" + heroConfig.Quality);
        var sprite = await UILoader.LoadSpriteAsync("HeroHead", HeroSkinConfig.Get(heroConfig.SkinIDList[0]).SquareIcon);
        if (this == null) return;
        heroIcon.overrideSprite = sprite;
        heroIcon.gray = _gray;
        qualityBG.gray = _gray;
        countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
        jobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(heroConfig.Class));
        nameText.text = heroConfig.Name;
    }
    GameObject cellContainer;
    protected void LoadPrefab()
    protected async UniTask LoadPrefab()
    {
        if (cellContainer != null)
            return;
@@ -146,7 +129,16 @@
        }
        if (cellContainer == null)
        {
            cellContainer = UIUtility.CreateWidget("HeroHeadBaseNoTrainCell", "Container_HeadCell");
            cellContainer = await UIUtility.CreateWidget("HeroHeadBaseNoTrainCell", "Container_HeadCell");
            if (this == null)
            {
                if (cellContainer != null)
                {
                    DestroyImmediate(cellContainer);
                }
                return;
            }
            if (cellContainer != null)
            {