/// <summary> /// 初始化资源加载器。 /// 在使用前必须先进行初始化,初始成功后才能正常使用 /// </summary> /// <param name="mode">资源加载模式,参见<see cref="AssetLoaderMode"/></param> /// <param name="initCallback">管理器初始化成功后回调,成功返回true,否则返回false</param> /// <param name="assetRootDir">使用AB加载资源时,需要指定AB资源所在的根目录</param> public void InitManager(AssetLoaderMode mode, Action <bool> initCallback, string assetRootDir = "") { loaderMode = mode; DebugLog.Info(AssetConst.LOGGER_NAME, $"AssetManager::InitManager->Start init mgr.mode = {mode.ToString()},assetRootDir = {assetRootDir}"); if (loaderMode == AssetLoaderMode.AssetBundle) { assetLoader = new BundleLoader(); } #if UNITY_EDITOR else { assetLoader = new DatabaseLoader(); } #endif if (assetLoader == null) { DebugLog.Error(AssetConst.LOGGER_NAME, "AssetLoader is Null"); initCallback?.Invoke(false); } else { assetLoader.Initialize((Action <bool>)((result) => { if (!result) { DebugLog.Error((string)AssetConst.LOGGER_NAME, "AssetManager::InitManager->init failed"); } DebugLog.Info((string)AssetConst.LOGGER_NAME, "AssetManager::InitManager->init Success"); if (loaderMode == AssetLoaderMode.AssetBundle) { sceneLoader = new BundleSceneLoader(assetLoader); } #if UNITY_EDITOR else { sceneLoader = new DatabaseSceneLoader(assetLoader); } #endif if (result) { StartAutoClean(); } initCallback.Invoke(result); }), assetRootDir); } }
protected ASceneLoader(AAssetLoader loader) { assetLoader = loader; }
public DatabaseSceneLoader(AAssetLoader loader) : base(loader) { }
public BundleSceneLoader(AAssetLoader loader) : base(loader) { }