Пример #1
0
        public void LoadTextAssetAsync(UDLib.Resource.ERESOURCE_TYPE eResourceType,
                                       string packageName,
                                       string[] resourceNames,
                                       System.Action <TextAsset[], System.Object> callback = null,
                                       UDLib.Resource.CLoadPriority priority = UDLib.Resource.CLoadPriority.NORMAL,
                                       bool needInstantiate = false,
                                       System.Object args   = null,
                                       UDLib.Resource.CReleaseType releaseType = UDLib.Resource.CReleaseType.Normal
                                       )
        {
            new UDLib.Resource.CLoadObject((int)eResourceType, packageName, resourceNames, (isOK, objs, loadedArgs) =>
            {
                if (isOK == true && objs.Length > 0)
                {
                    TextAsset[] array = new TextAsset[objs.Length];

                    for (int i = 0; i < objs.Length; ++i)
                    {
                        if (objs[i].obj == null)
                        {
                            UDLib.Utility.CDebugOut.LogError("资源加载出错:{0}", objs[i].name);
                        }
                        UnityEngine.Object ret = needInstantiate == true ? GameObject.Instantiate(objs[i].obj) : objs[i].obj;
                        array[i] = ret as TextAsset;
                    }

                    callback(array, loadedArgs);
                }
                else
                {
                    UDLib.Utility.CDebugOut.LogError("LoadPrefabAsync error, resource_name: " + resourceNames);
                }
            }, priority, args, releaseType);
        }
Пример #2
0
        //从folder里加载单个资源,主要是为了给lua调用,避免传数组
        public void LoadAPrefabAsyncFromFolder(
            UDLib.Resource.ERESOURCE_TYPE eResourceType,
            string packageName,
            string resourceName,
            System.Action <UDLib.Resource.CAssetObject[], System.Object> callback = null,
            UDLib.Resource.CLoadPriority priority = UDLib.Resource.CLoadPriority.NORMAL,
            System.Object args = null,
            UDLib.Resource.CReleaseType releaseType = UDLib.Resource.CReleaseType.Normal
            )
        {
            if (string.IsNullOrEmpty(resourceName))
            {
                UDLib.Utility.CDebugOut.LogError("resource_name不能为空!package_name= {0},resourceType = {1}", packageName, eResourceType.ToString());
                return;
            }

            new UDLib.Resource.CLoadObject((int)eResourceType, packageName, new string[1] {
                resourceName
            }, (isOK, objs, loadedArgs) =>
            {
                if (isOK == true && objs.Length > 0)
                {
                    callback(objs, loadedArgs);
                }
                else
                {
                    UDLib.Utility.CDebugOut.LogError("LoadPrefabAsync error, resource_name: " + resourceName);
                }
            }, priority, args, releaseType);
        }
Пример #3
0
 /// <summary>
 /// 加载一个资源
 /// </summary>
 /// <param name="eResourceType"></param>
 /// <param name="resourceName"></param>
 /// <param name="callback"></param>
 /// <param name="priority"></param>
 /// <param name="needInstantiate"></param>
 public void LoadPrefabAsync(
     UDLib.Resource.ERESOURCE_TYPE eResourceType,
     string resourceName,
     System.Action <UnityEngine.Object, System.Object> callback = null,
     UDLib.Resource.CLoadPriority priority = UDLib.Resource.CLoadPriority.NORMAL,
     bool needInstantiate = false,
     System.Object args   = null,
     UDLib.Resource.CReleaseType releaseType = UDLib.Resource.CReleaseType.Normal,
     bool isAsynMode = true
     )
 {
     new UDLib.Resource.CLoadObject((int)eResourceType, resourceName, (isOK, objs, loadedArgs) =>
     {
         UnityEngine.Object ret = null;
         if (isOK == true && objs.Length > 0)
         {
             UnityEngine.Object unityObj = objs[0].obj;
             if (null == unityObj)
             {
                 UDLib.Utility.CDebugOut.LogError("load unityobj NULL!" + resourceName);
             }
             ret = needInstantiate == true ? GameObject.Instantiate(objs[0].obj) : objs[0].obj;
         }
         else
         {
             // 被取消的加载
             UDLib.Utility.CDebugOut.LogWarning("LoadPrefabAsync error, resource_name: " + resourceName);
             return;
         }
         if (null != callback)
         {
             callback(ret, loadedArgs);
         }
     }, priority, args, releaseType, isAsynMode);
 }
Пример #4
0
        public UDLib.Resource.CLoadObject LoadObjectsAsync <T>(
            UDLib.Resource.ERESOURCE_TYPE eResourceType,
            string packageName,
            string[] resourceNames,
            System.Action <T[], System.Object> callback = null,
            UDLib.Resource.CLoadPriority priority       = UDLib.Resource.CLoadPriority.NORMAL,
            bool needInstantiate = false,
            System.Object args   = null,
            UDLib.Resource.CReleaseType releaseType = UDLib.Resource.CReleaseType.Normal
            ) where T : UnityEngine.Object //Note this !
        {
            return(new UDLib.Resource.CLoadObject((int)eResourceType, packageName, resourceNames, (isOK, objs, loadedArgs) =>
            {
                if (isOK == true && objs.Length > 0)
                {
                    T[] array = new T[objs.Length];

                    for (int i = 0; i < objs.Length; ++i)
                    {
                        if (objs[i] == null)
                        {
                            continue;
                        }
                        UnityEngine.Object ret = needInstantiate == true ? GameObject.Instantiate(objs[i].obj) : objs[i].obj;
                        array[i] = ret as T;
                    }

                    callback(array, loadedArgs);
                }
                else
                {
                    UDLib.Utility.CDebugOut.LogWarning("LoadPrefabAsync failed, packageName:{0},resource_name:{1} ", packageName, resourceNames[0]);
                }
            }, priority, args, releaseType));
        }