using UnityEngine; using Cysharp.Threading.Tasks; public class ArenaHeroHead : MonoBehaviour { [SerializeField] ImageEx imgQuality; [SerializeField] ImageEx imgHeadIcon; [SerializeField] TextEx txtHeroLv; public void Display(int heroID, int skinID, int heroLv) { if (!HeroConfig.HasKey(heroID) || !HeroSkinConfig.HasKey(skinID)) return; var heroConfig = HeroConfig.Get(heroID); var heroSkinConfig = HeroSkinConfig.Get(skinID); imgQuality.SetSprite("heroheadBG" + heroConfig.Quality); UILoader.LoadSpriteAsync("HeroHead", heroSkinConfig.SquareIcon).ContinueWith(sprite => { if (this == null) return; if (sprite == null) { imgHeadIcon.SetSprite("herohead_default"); } else { imgHeadIcon.overrideSprite = sprite; } }).Forget(); txtHeroLv.text = Language.Get("Arena22", heroLv); } public async UniTask DisplayAsync(int heroID, int skinID, int heroLv) { if (!HeroConfig.HasKey(heroID) || !HeroSkinConfig.HasKey(skinID)) return; var heroConfig = HeroConfig.Get(heroID); var heroSkinConfig = HeroSkinConfig.Get(skinID); imgQuality.SetSprite("heroheadBG" + heroConfig.Quality); var sprite = await UILoader.LoadSpriteAsync("HeroHead", heroSkinConfig.SquareIcon); if (this == null) return; if (sprite == null) { // 内网未配置时 imgHeadIcon.SetSprite("herohead_default"); } else { imgHeadIcon.overrideSprite = sprite; } txtHeroLv.text = Language.Get("Arena22", heroLv); } }