コード例 #1
0
 /// <summary>
 /// 资源已经卸载了 移除加载记录
 /// </summary>
 public static void RemoveLocalResourcesAssetRecord(LoadResourcesAssetRecord assetRecord)
 {
     if (assetRecord == null)
     {
         return;
     }
     mAllLoadResourcesAssetRecords.Remove(assetRecord.mAssetFullUri);
     assetRecord.ReleaseLoadAssetRecord();
 }
コード例 #2
0
        /// <summary>
        /// Resources 异步加载资源 (注意加载路径中不能带有扩展名否则加载失败)
        /// </summary>
        /// <param name="assetFullUri"></param>
        /// <param name="loadCallback"></param>
        /// <param name="procressCallback"></param>
        public static void ResourcesLoadAssetAsync(string assetFullUri, System.Action <ILoadAssetRecord> loadCallback, System.Action <string, float> procressCallback)
        {
            LoadResourcesAssetRecord resourcesAssetRecord = LoadResourcesAssetFromCache(assetFullUri);

            if (resourcesAssetRecord != null && resourcesAssetRecord.IsRecordEnable)
            {
                loadCallback?.Invoke(resourcesAssetRecord);
                return;
            }

            ResourceRequest request = Resources.LoadAsync(assetFullUri.GetPathWithOutExtension());

            AsyncManager.StartAsyncOperation(request, () =>
            {
                resourcesAssetRecord = LoadResourcesAssetRecord.GetLoadResourcesAssetRecord(assetFullUri, request.asset);
                RecordResourcesLoadAsset(assetFullUri, resourcesAssetRecord);
                loadCallback?.Invoke(resourcesAssetRecord);
            }, (procress) => { procressCallback?.Invoke(assetFullUri, procress); });
        }
コード例 #3
0
        /// <summary>/// / 记录加载的资源/// </summary>
        private static void RecordResourcesLoadAsset(string assetUrl, LoadResourcesAssetRecord asset)
        {
            if (asset == null)
            {
                return;
            }
            if (mAllLoadResourcesAssetRecords.TryGetValue(assetUrl, out var infor))
            {
                if (infor == asset)
                {
                    return;
                }
                Debug.LogError($"RecordResourcesLoadAsset Fail,Already Exit Asset at path={assetUrl} Not Equal");
                infor.ReleaseLoadAssetRecord();
                mAllLoadResourcesAssetRecords.Remove(assetUrl);
            }

            mAllLoadResourcesAssetRecords[assetUrl] = asset;
        }
コード例 #4
0
        /// <summary>
        /// Resources 同步加载资源 (注意加载路径中不能带有扩展名否则加载失败)
        /// </summary>
        /// <param name="assetFullUri"></param>
        /// <returns></returns>
        public static ILoadAssetRecord ResourcesLoadAssetSync(string assetFullUri)
        {
            LoadResourcesAssetRecord resourcesAssetRecord = LoadResourcesAssetFromCache(assetFullUri);

            if (resourcesAssetRecord != null && resourcesAssetRecord.IsRecordEnable)
            {
                return(resourcesAssetRecord);
            }

            Object asset = Resources.Load <UnityEngine.Object>(assetFullUri.GetPathWithOutExtension());

            if (asset == null)
            {
#if UNITY_EDITOR
                Debug.LogInfor($"ResourcesLoadAssetSync Fail,assetFullUri={assetFullUri}  not exit");
#endif
                return(null);
            }

            resourcesAssetRecord = LoadResourcesAssetRecord.GetLoadResourcesAssetRecord(assetFullUri, asset);
            RecordResourcesLoadAsset(assetFullUri, resourcesAssetRecord);
            return(resourcesAssetRecord);
        }