Beispiel #1
0
 public AssetHandler InstanceAssetAsync(
     string address,
     OnAssetLoadProgress progress,
     OnAssetLoadComplete complete)
 {
     return(assetMgr.InstanceAssetAsync(address, progress, complete, AssetLoaderPriority.Default, null));
 }
Beispiel #2
0
 /// <summary>
 /// 取消加载任务
 /// </summary>
 internal void CancelLoader()
 {
     CompleteCallback      = null;
     ProgressCallback      = null;
     BatchCompleteCallback = null;
     BatchProgressCallback = null;
     m_UserData            = null;
 }
Beispiel #3
0
 /// <summary>
 /// 实例化单个资源
 /// </summary>
 /// <param name="pathOrAddress">路径/地址</param>
 /// <param name="complete">单个资源加载完成委托</param>
 /// <param name="priority">加载优先级</param>
 /// <param name="progress">单个资源加载进度委托</param>
 /// <param name="userData">携带参数</param>
 /// <returns></returns>
 public static AssetLoaderHandle InstanceAssetAsync(
     string pathOrAddress,
     OnAssetLoadComplete complete,
     AssetLoaderPriority priority = AssetLoaderPriority.Default,
     OnAssetLoadProgress progress = null,
     SystemObject userData        = null)
 {
     return(AssetMgr.GetInstance().InstanceAssetAsync(pathOrAddress, complete, priority, progress, userData));
 }
Beispiel #4
0
 public AssetHandler InstanceAssetAsync(
     string address,
     OnAssetLoadProgress progress,
     OnAssetLoadComplete complete,
     AssetLoaderPriority priority,
     SystemObject userData)
 {
     return(assetMgr.InstanceAssetAsync(address, progress, complete, priority, userData));
 }
Beispiel #5
0
 public AssetHandler InstanceAssetAsync(
     string address,
     OnAssetLoadProgress progress,
     OnAssetLoadComplete complete,
     AssetLoaderPriority priority,
     SystemObject userData
     )
 {
     return(LoadBatchAssetAsync(null, new string[] { address }, true, complete, null, progress, null, priority, userData));
 }
Beispiel #6
0
 /// <summary>
 /// 一组资源加载
 /// </summary>
 /// <param name="pathOrAddresses">一组 路径/地址</param>
 /// <param name="complete">单个资源加载完成委托</param>
 /// <param name="batchComplete">一组资源加载完成委托</param>
 /// <param name="priority">加载优先级</param>
 /// <param name="progress">单个资源加载进度委托</param>
 /// <param name="batchProgress">一组资源加载进度委托</param>
 /// <param name="userData">携带参数</param>
 /// <returns></returns>
 public static AssetLoaderHandle LoadBatchAssetAsync(
     string[] pathOrAddresses,
     OnAssetLoadComplete complete,
     OnBatchAssetLoadComplete batchComplete,
     AssetLoaderPriority priority            = AssetLoaderPriority.Default,
     OnAssetLoadProgress progress            = null,
     OnBatchAssetsLoadProgress batchProgress = null,
     SystemObject userData = null)
 {
     return(AssetMgr.GetInstance().LoadBatchAssetAsync(pathOrAddresses, complete, batchComplete, priority, progress, batchProgress, userData));
 }
Beispiel #7
0
 public AssetHandler InstanceBatchAssetAsync(
     string[] addresses,
     OnAssetLoadProgress progress,
     OnAssetLoadComplete complete,
     OnBatchAssetsLoadProgress batchProgress,
     OnBatchAssetLoadComplete batchComplete,
     AssetLoaderPriority priority,
     SystemObject userData)
 {
     return(assetMgr.InstanceBatchAssetAsync(addresses, progress, complete, batchProgress, batchComplete, priority, userData));
 }
Beispiel #8
0
 public AssetHandler LoadBatchAssetAsyncByLabel(
     string label,
     OnAssetLoadProgress progress,
     OnAssetLoadComplete complete,
     OnBatchAssetsLoadProgress batchProgress,
     OnBatchAssetLoadComplete batchComplete,
     AssetLoaderPriority priority,
     SystemObject userData
     )
 {
     return(assetMgr.LoadBatchAssetAsyncByLabel(label, progress, complete, batchProgress, batchComplete, priority, userData));
 }
Beispiel #9
0
 public AssetHandler InstanceBatchAssetAsyncByLabel(
     string label,
     OnAssetLoadProgress progress,
     OnAssetLoadComplete complete,
     OnBatchAssetsLoadProgress batchProgress,
     OnBatchAssetLoadComplete batchComplete,
     AssetLoaderPriority priority,
     SystemObject userData
     )
 {
     return(LoadBatchAssetAsync(label, null, true, complete, batchComplete, progress, batchProgress, priority, userData));
 }
Beispiel #10
0
 public AssetHandler LoadBatchAssetAsync(
     string[] addresses,
     OnAssetLoadProgress progress,
     OnAssetLoadComplete complete,
     OnBatchAssetsLoadProgress batchProgress,
     OnBatchAssetLoadComplete batchComplete,
     AssetLoaderPriority priority,
     SystemObject userData
     )
 {
     return(LoadBatchAssetAsync(null, addresses, false, complete, batchComplete, progress, batchProgress, priority, userData));
 }
Beispiel #11
0
        /// <summary>
        /// 按批量方式进行资源的加载
        /// 如果指定使用标签进行资源加载,则会忽略<paramref name="addresses"/>的值
        /// </summary>
        /// <param name="label">加载设定指定标签的资源</param>
        /// <param name="addresses">资源加载地址</param>
        /// <param name="isInstance">是否需要实例化</param>
        /// <param name="complete">单个资源加载完毕后回调</param>
        /// <param name="batchComplete">所有资源加载完毕后回调</param>
        /// <param name="progress">单个资源加载进度回调</param>
        /// <param name="batchProgress">所有资源加载进度回调</param>
        /// <param name="priority">优先级</param>
        /// <param name="userData">自定义参数</param>
        /// <returns></returns>
        internal AssetHandler LoadBatchAssetAsync(
            string label,
            string[] addresses,
            bool isInstance,
            OnAssetLoadComplete complete,
            OnBatchAssetLoadComplete batchComplete,
            OnAssetLoadProgress progress,
            OnBatchAssetsLoadProgress batchProgress,
            AssetLoaderPriority priority,
            SystemObject userData)
        {
            //如果指定按标签加载资源,则查找标记为指定标签的所有资源
            if (!string.IsNullOrEmpty(label))
            {
                addresses = addressConfig.GetAddressesByLabel(label);
                DebugLog.Debug(AssetConst.LOGGER_NAME, $"AssetLoader::LoadBatchAssetAsync->Load asset by label.label = {label},addresses = {string.Join(",",addresses)}");
            }

            if (addresses == null || addresses.Length == 0)
            {
                DebugLog.Error(AssetConst.LOGGER_NAME, "AAssetLoader::LoadBatchAssetAsync->addresses is null");
                return(null);
            }
            //获取资源真实的路径
            string[] paths = addressConfig.GetPathsByAddresses(addresses);
            if (paths == null || paths.Length == 0)
            {
                DebugLog.Error(AssetConst.LOGGER_NAME, "AssetLoader::LoadBatchAssetAsync->paths is null");
                return(null);
            }
            else
            {
                DebugLog.Debug(AssetConst.LOGGER_NAME, $"AssetLoader::LoadBatchAssetAsync->find assetPath by address.addresses = {string.Join(",", addresses)},path = {string.Join(",",paths)}");
            }

            if (dataWaitingQueue.Count >= dataWaitingQueue.MaxSize)
            {
                dataWaitingQueue.Resize(dataWaitingQueue.MaxSize * 2);
                DebugLog.Debug(AssetConst.LOGGER_NAME, "AssetLoader::LoadBatchAssetAsync->Reset the queue size.");
            }

            AssetLoaderData data = dataPool.Get();

            data.InitData(label, addresses, paths, isInstance, complete, progress, batchComplete, batchProgress, userData);
            data.State = AssetLoaderDataState.Waiting;
            dataWaitingQueue.Enqueue(data, (float)priority);

            return(data.Handler);
        }
Beispiel #12
0
 /// <summary>
 /// 异步加载单个文件
 /// </summary>
 /// <param name="pathOrAddress">路径/地址</param>
 /// <param name="complete">单个资源加载完成委托</param>
 /// <param name="priority">加载优先级</param>
 /// <param name="progress">单个资源加载进度委托</param>
 /// <param name="userData">携带参数</param>
 /// <returns></returns>
 public AssetLoaderHandle LoadAssetAsync(
     string pathOrAddress,
     OnAssetLoadComplete complete,
     AssetLoaderPriority priority = AssetLoaderPriority.Default,
     OnAssetLoadProgress progress = null,
     SystemObject userData        = null)
 {
     if (m_IsInit)
     {
         return(m_AssetLoader.LoadOrInstanceBatchAssetAsync(new string[] { pathOrAddress }, false, priority, complete, progress, null, null, userData));
     }
     else
     {
         Debug.LogError("AssetManager::LoadAssetAsync->init is failed");
         return(null);
     }
 }
Beispiel #13
0
        private AssetHandler LoadBatchAssetAsync(
            string label,
            string[] addresses,
            bool isInstance,
            OnAssetLoadComplete complete,
            OnBatchAssetLoadComplete batchComplete,
            OnAssetLoadProgress progress,
            OnBatchAssetsLoadProgress batchProgress,
            AssetLoaderPriority priority,
            SystemObject userData)
        {
            if (assetLoader == null)
            {
                DebugLog.Error(AssetConst.LOGGER_NAME, "AssetManager::LoadBatchAssetAsync->assetLoader is Null");
                return(null);
            }

            return(assetLoader.LoadBatchAssetAsync(label, addresses, isInstance, complete, batchComplete, progress, batchProgress, priority, userData));
        }