/// <summary> /// 初始化 /// </summary> /// <param name="callback">初始化回调</param> /// <param name="assetDir">资源的根目录</param> internal void Initialize(Action <bool> callback, string assetDir) { initCallback = callback; assetRootDir = assetDir; State = AssetLoaderState.Initing; }
public void LoadAsset(string path, Action <UnityObject> callback) { m_State = AssetLoaderState.Loading; if (GameConst.GetInstance().m_AssetLoaderMode == AssetLoaderMode.AssetDatabase) { UnityObject obj = LoadAssetFromLocal(path, callback); m_State = AssetLoaderState.Complete; m_Progress = 1; callback(obj); } else { m_asyncOperation = LoadAssetFromBuild(path, callback); m_State = AssetLoaderState.Complete; m_Progress = m_asyncOperation.progress; } }
/// <summary> /// 清理所有的资源 /// </summary> internal virtual void DoDispose() { while (dataWaitingQueue.Count > 0) { var loaderData = dataWaitingQueue.Dequeue(); dataPool.Release(loaderData); } for (int i = dataLoadingList.Count - 1; i >= 0; --i) { var loaderData = dataLoadingList[i]; dataLoadingList.RemoveAt(i); dataPool.Release(loaderData); } dataPool.Clear(); operations.Clear(); assetNodeDic.Clear(); State = AssetLoaderState.None; initCallback = null; addressConfig = null; }