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);
}
}
}
}