版权声明:转载 请说明 出处 https://blog.csdn.net/qq2512667/article/details/87822143
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using System;
public class DownLoadManager : MonoBehaviour {
public static DownLoadManager _instance;
public static DownLoadManager Instance
{
get
{
_instance = FindObjectOfType<DownLoadManager>();
if (_instance==null)
{
GameObject temp = null;
temp.name = "DownLoadManager";
GameObject go= Instantiate(temp);
_instance= go.AddComponent<DownLoadManager>();
}
return _instance;
}
}
public delegate void LoadCallBack(params object[] args);
public void LoadScensBundle(string name,LoadCallBack callBack,params object[] args)
{
StartCoroutine(startLoad(name,callBack,args));
}
IEnumerator startLoad(string name, LoadCallBack callBack, params object[] args)
{
AsyncOperation async= SceneManager.LoadSceneAsync(name);
yield return async;
GC.Collect();
Resources.UnloadUnusedAssets();
if (callBack!=null)
{
callBack(args);
}
}
}
小细节: GC.Collect();
Resources.UnloadUnusedAssets();
在加载场景后 收集下GC,再卸载资源。