/// <summary>
        /// 异步加载一组资源
        /// <para>即便 ResourcesLoadingLocation == ResourcesLoadingLocation.Resources, 参数 <paramref name="assetPaths"/> 中的每一项路径也都需要输入资源在项目中的相对路径</para>
        /// <para>路径开头 'Assets' 可省略,如 'Assets/Resources/test.png' 可简写为 'Resources/test.png'</para>
        /// <para>路径分隔符统一为 '/'</para>
        /// <para>当资源存在依赖时,将会自动加载依赖。</para>
        /// </summary>
        /// <param name="assetPaths">资产路径</param>
        /// <param name="asyncAction">加载过程中的回调信息</param>
        /// <returns>资源管理器自身实例对象</returns>
        public ResourcesManager LoadAssetAsync <T>(string[] assetPaths, System.Action <bool, float, string, T[]> asyncAction) where T : UnityEngine.Object
        {
            ResourcesAsyncLoader <T> .ResourcePackage = ResourcePackage;
            ResourcesAsyncLoader <T> .LoadAsync(assetPaths, _resourcesLoadingLocation, (isdone, progress, error, objs) => {
                if (asyncAction != null)
                {
                    asyncAction(isdone, progress, error, objs);
                }
            });

            return(this);
        }
        /// <summary>
        /// 异步加载场景
        /// </summary>
        /// <param name="scenePath">场景资源路径</param>
        /// <param name="asyncAction">异步数据回调</param>
        /// <returns></returns>
        public ResourcesManager LoadSceneAsync(string scenePath, Func <string, AsyncOperation> scnenAsyncRequestFunc, System.Action <bool, float, string, SceneInfo> asyncAction)
        {
            ResourcesAsyncLoader <SceneInfo> .ResourcePackage = ResourcePackage;
            ResourcesAsyncLoader <SceneInfo> .LoadSceneAsync(scenePath, _resourcesLoadingLocation, scnenAsyncRequestFunc, (isdone, progress, error, obj) => {
                if (asyncAction != null)
                {
                    asyncAction(isdone, progress, error, obj);
                }
            });

            return(this);
        }
Example #3
0
        public ResourcesManager LoadDependencies(string[] assetBundleDependencies, System.Action <bool, float, string> asyncAction)
        {
            ResourcesAsyncLoader <AssetBundle> .ResourcePackage = ResourcePackage;
            ResourcesAsyncLoader <AssetBundle> .LoadDependencies(assetBundleDependencies, (isdone, progress, error) => {
                if (asyncAction != null)
                {
                    asyncAction(isdone, progress, error);
                }
            });

            return(this);
        }