public static void CleanTex(UnityEngine.GameObject go_) { if (go_ == null) { return; } Image image = go_.GetComponent <Image>(); if (image != null) { if (image.sprite != null) { ImageItem imageItem = Ctx.m_instance.m_atlasMgr.getAndSyncLoadImage(CVAtlasName.ShopDyn, image.sprite.name); if (imageItem != null && imageItem.image != null) { if (image.sprite.texture != null) { UtilApi.UnloadAsset(image.sprite.texture); } image.sprite = null; image = null; } } } int childCount = go_.transform.childCount; int idx = 0; Transform childTrans = null; for (idx = 0; idx < childCount; ++idx) { childTrans = go_.transform.GetChild(idx); UtilApi.CleanTex(childTrans.gameObject); } }
public override void unload() { if (m_mat != null) { UtilApi.UnloadAsset(m_mat); m_mat = null; } base.unload(); }
public void unload() { if (m_objList != null) { foreach (SerialObject sprite in m_objList) { UtilApi.UnloadAsset(sprite.m_sprite.texture); } m_objList = null; } }
// 纹理材质都是实例化,都对资源有引用计数,深度遍历释放资源 public static void DestroyTexMat(UnityEngine.GameObject go_) { Material mat = go_.GetComponent <Material>(); if (mat != null) { if (mat.mainTexture != null) { UtilApi.UnloadAsset(mat.mainTexture); mat.mainTexture = null; } UtilApi.UnloadAsset(mat); mat = null; } Image image = go_.GetComponent <Image>(); if (image != null) { if (image.sprite != null) { if (image.sprite.texture != null) { UtilApi.UnloadAsset(image.sprite.texture); } image.sprite = null; } image = null; } int childCount = go_.transform.childCount; int idx = 0; Transform childTrans = null; for (idx = 0; idx < childCount; ++idx) { childTrans = go_.transform.GetChild(idx); UtilApi.DestroyTexMat(childTrans.gameObject); } }
public void unload() { UtilApi.UnloadAsset(m_animatorController); }
public override void unload() { UtilApi.UnloadAsset(m_texture); m_texture = null; base.unload(); }