封装了一个垃圾收集类,为了彻底的卸载无用资源,第一步卸载临时对象,第二步删除资源。(临时对象引用资源)
使用
public class GC : MonoBehaviour
{
public AsyncOperation m_Operation;
public UnityAction m_Callback; //垃圾清除干净之后的回调
public void UnloadUnusedAssets(UnityAction callback){
m_Callback = callback;
System.GC.Collect (); //除去临时对象
m_Operation = Resources.UnloadUnusedAssets(); //删除游戏资源
}
void Update()
{
if (m_Operation !=null ) {
if (m_Operation.isDone) {
m_Operation = null;
m_Callback ();
//删除自身
Destroy (this,1); //解除update的占用,延迟一秒为了把m_callback实现出来。
}
}
}
}