示例#1
0
        /// <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);
            }
        }
示例#2
0
 protected ASceneLoader(AAssetLoader loader)
 {
     assetLoader = loader;
 }
示例#3
0
 public DatabaseSceneLoader(AAssetLoader loader) : base(loader)
 {
 }
示例#4
0
 public BundleSceneLoader(AAssetLoader loader) : base(loader)
 {
 }