Ejemplo n.º 1
0
        /// <summary>
        /// 异步加载资源对象
        /// <param name="assetName">资源对象名称</param>
        /// </summary>
        public AssetOperationHandle LoadAssetAsync <TObject>(string assetName, IAssetParam param)
        {
            if (AssetSystem.SystemMode == EAssetSystemMode.ResourcesMode)
            {
                throw new System.Exception($"{nameof(EAssetSystemMode.ResourcesMode)} is not support to assign asset name.");
            }

            return(LoadInternal(assetName, typeof(TObject), param));
        }
Ejemplo n.º 2
0
        public AssetOperationHandle LoadAssetAsync(System.Type type, IAssetParam param)
        {
            string assetName = Path.GetFileName(Location);

            return(LoadInternal(assetName, type, param));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 异步加载主资源对象
        /// </summary>
        public AssetOperationHandle LoadAssetAsync <TObject>(IAssetParam param)
        {
            string assetName = Path.GetFileName(Location);

            return(LoadInternal(assetName, typeof(TObject), param));
        }
Ejemplo n.º 4
0
 private AssetOperationHandle LoadInternal(string assetName, System.Type assetType, IAssetParam param)
 {
     if (_cacheLoader == null)
     {
         _cacheLoader = AssetSystem.CreateLoader(Location, Variant);
     }
     return(_cacheLoader.LoadAssetAsync(assetName, assetType, param));
 }
Ejemplo n.º 5
0
 public AssetOperationHandle LoadAssetAsync(System.Type type, string assetName, IAssetParam param)
 {
     return(LoadInternal(assetName, type, param));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 异步加载资源对象
 /// <param name="assetName">资源对象名称</param>
 /// </summary>
 public AssetOperationHandle LoadAssetAsync <TObject>(string assetName, IAssetParam param)
 {
     return(LoadInternal(assetName, typeof(TObject), param));
 }
Ejemplo n.º 7
0
        private AssetOperationHandle LoadInternalSync(string location, System.Type assetType, IAssetParam param)
        {
            string          assetName   = Path.GetFileName(location);
            AssetLoaderBase cacheLoader = AssetSystem.CreateLoader(location);
            var             handle      = cacheLoader.LoadAssetAsync(assetName, assetType, param);

            cacheLoader.ForceSyncLoad();
            return(handle);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 加载资源对象
        /// </summary>
        public AssetOperationHandle LoadAssetAsync(string assetName, System.Type assetType, IAssetParam param)
        {
            IAssetProvider provider = TryGetProvider(assetName);

            if (provider == null)
            {
                if (assetType == typeof(SceneInstance))
                {
                    SceneInstanceParam sceneParam = param as SceneInstanceParam;
                    provider = new AssetSceneProvider(this, assetName, assetType, sceneParam);
                }
                else if (assetType == typeof(PackageInstance))
                {
                    throw new NotImplementedException(nameof(PackageInstance));                     // TODO
                }
                else
                {
                    if (this is AssetBundleFileLoader)
                    {
                        provider = new AssetBundleProvider(this, assetName, assetType);
                    }
                    else if (this is AssetDatabaseFileLoader)
                    {
                        provider = new AssetDatabaseProvider(this, assetName, assetType);
                    }
                    else if (this is AssetResourcesFileLoader)
                    {
                        provider = new AssetResourcesProvider(this, assetName, assetType);
                    }
                    else
                    {
                        throw new NotImplementedException($"{this.GetType()}");
                    }
                }
                _providers.Add(provider);
            }
            return(provider.Handle);
        }