using UnityEngine; using YooAsset; namespace GFGGame { public static class SpriteHelper { /// /// 移除的时候请用RemoveSpriteFrom,否则不会释放资源 /// /// /// public static async void AddSpriteTo(SpriteRenderer spr, string resPath) { RemoveSpriteFrom(spr); await LoadManager.Instance.CheckResExsitedOrDownload(resPath); var handle = YooAssets.LoadAssetSync(resPath); Sprite sp = handle.AssetObject as Sprite; GameObject gameObject = spr.gameObject; AssetReleaserHelper.AddReleaserToInstantiateObj(gameObject, resPath, handle); spr.sprite = sp; } public static void RemoveSpriteFrom(SpriteRenderer spr) { spr.sprite = null; AssetReleaser assetReleaser = spr.gameObject.GetComponent(); if(assetReleaser != null) { //必须立即销毁,不能改为Destroy代替 GameObject.DestroyImmediate(assetReleaser); } } } }