Exemplo n.º 1
0
        /// <summary>
        /// Requests the asset bundle.
        /// </summary>
        /// <returns>The asset bundle.</returns>
        /// <param name="path">Path.</param>
        /// <param name="arg">Argument.</param>
        public ResourceRequireOwner RequestAssetBundle(string path, long utime)
        {
            ResourceRequireOwner owner = ResourceMgr.RequestResouce(
                path, true, utime, true, RESOURCE_TYPE.WEB_ASSETBUNLDE,
                ENCRYPT_TYPE.NORMAL, null, this.m_delErrorCallback, null);

            this.m_lstOwner.Add(owner);
            return(owner);
        }
Exemplo n.º 2
0
//===================================== texture ===================================

        /// <summary>
        /// Requests the texture.
        /// </summary>
        /// <returns>The texture.</returns>
        /// <param name="path">Path.</param>
        public ResourceRequireOwner RequestTexture(string path)
        {
            ResourceRequireOwner owner = ResourceMgr.RequestResouce(
                path, false, 0, true, RESOURCE_TYPE.WEB_TEXTURE,
                ENCRYPT_TYPE.NORMAL, null, this.m_delErrorCallback, null);

            this.m_lstOwner.Add(owner);
            return(owner);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Requests the audio clip.
        /// </summary>
        /// <returns>The audio clip.</returns>
        /// <param name="path">Path.</param>
        /// <param name="utime">Utime.</param>
        public ResourceRequireOwner RequestAudioClip(string path, long utime)
        {
            ResourceRequireOwner owner = ResourceMgr.RequestResouce(
                path, true, utime, true, RESOURCE_TYPE.WEB_AUDIOCLIP,
                ENCRYPT_TYPE.NORMAL, null, this.m_delErrorCallback, null
                );

            this.m_lstOwner.Add(owner);
            return(owner);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Requests the text bytes.
        /// </summary>
        /// <returns>The text bytes.</returns>
        /// <param name="path">Path.</param>
        /// <param name="utime">Utime.</param>
        public ResourceRequireOwner RequestTextBytes(string path, long utime)
        {
            ResourceRequireOwner owner = ResourceMgr.RequestResouce(
                path, true, utime, true, RESOURCE_TYPE.WEB_TEXT_BYTES,
                ENCRYPT_TYPE.NORMAL, null, this.m_delErrorCallback, null
                );

            this.m_lstOwner.Add(owner);
            return(owner);
        }
Exemplo n.º 5
0
//===================================== Resource ===================================

        public ResourceRequireOwner RequestPrefab(string path)
        {
            ResourceRequireOwner owner = new ResourceRequireOwner();

            owner.m_bComplete = true;
            owner.m_cResName  = path;
            owner.m_eResType  = RESOURCE_TYPE.PREFAB;
            owner.m_cAsset    = Resources.Load(path);
            this.m_lstOwner.Add(owner);
            return(owner);
        }
Exemplo n.º 6
0
 /// <summary>
 /// 删除资源资源需求
 /// </summary>
 /// <param name="name"></param>
 /// <param name="owner"></param>
 public static void UnloadResource(string name, ResourceRequireOwner owner)
 {
     if (sInstance.m_mapRes.ContainsKey(name))
     {
         sInstance.m_mapRes[name].RemoveRequireOwner(owner);
         //倘若资源需求为空
         if (sInstance.m_mapRes[name].IsOwnerEmpty())
         {
             //如果可以卸载 或者 加载未完成则卸载资源
             if (CanUnload(name) || !sInstance.m_mapRes[name].Complete)
             {
                 sInstance.m_mapRes[name].Destory(false);
                 sInstance.m_lstRequires.Remove(sInstance.m_mapRes[name]);
                 sInstance.m_mapRes.Remove(name);
                 Resources.UnloadUnusedAssets();
             }
         }
     }
     else
     {
         Debug.LogError("Has not resource " + name);
     }
 }
 //===================================== Resource ===================================
 public ResourceRequireOwner RequestPrefab( string path )
 {
     ResourceRequireOwner owner = new ResourceRequireOwner();
     owner.m_bComplete = true;
     owner.m_cResName = path;
     owner.m_eResType = RESOURCE_TYPE.PREFAB;
     owner.m_cAsset = Resources.Load(path);
     this.m_lstOwner.Add(owner);
     return owner;
 }
Exemplo n.º 8
0
        /// <summary>
        /// Requests the resouce.
        /// </summary>
        /// <returns>The resouce.</returns>
        /// <param name="path">Path.</param>
        /// <param name="crc">Crc.</param>
        /// <param name="version">Version.</param>
        /// <param name="autoSave">If set to <c>true</c> auto save.</param>
        /// <param name="utime">Utime.</param>
        /// <param name="autoClear">If set to <c>true</c> auto clear.</param>
        /// <param name="resType">Res type.</param>
        /// <param name="encrypt_type">Encrypt_type.</param>
        /// <param name="func">Func.</param>
        /// <param name="error_call">Error_call.</param>
        /// <param name="arg">Argument.</param>
        public static ResourceRequireOwner RequestResouce(
            string path, bool autoSave, long utime, bool autoClear, RESOURCE_TYPE resType,
            ENCRYPT_TYPE encrypt_type, REQUEST_FINISH_CALLBACK func,
            REQUEST_ERROR_CALLBACK error_call, object[] arg
            )
        {
            if (sInstance.m_delDecryptFunc == null && encrypt_type == ENCRYPT_TYPE.ENCRYPT)
            {
                // Error
                // 没有资源解密接口
                return(null);
            }

            string resName = (new Uri(path)).AbsolutePath;

            ResourceRequireOwner owner = new ResourceRequireOwner();

            owner.m_cResName = resName;
//            owner.m_strResValue = resValue;
            owner.m_delCallBack  = func;
            owner.m_delErrorCall = error_call;
            owner.m_eResType     = resType;
            owner.m_vecArg       = arg;
            if (sInstance.m_eLoadType != LOAD_TYPE.NORMAL)
            {
                UnityEngine.Object obj = LoadEditor(resName);
                if (!sInstance.m_mapRes.ContainsKey(resName))
                {
                    object resData = null;
                    switch (resType)
                    {
                    case RESOURCE_TYPE.WEB_ASSETBUNLDE:
                    case RESOURCE_TYPE.WEB_TEXTURE:
                        resData = obj;
                        break;

                    case RESOURCE_TYPE.WEB_TEXT_BYTES:
                        resData = (obj as TextAsset).bytes;
                        break;

                    case RESOURCE_TYPE.WEB_TEXT_STR:
                        resData = (obj as TextAsset).text;
                        break;
                    }
                    ResourceRequireData data = new ResourceRequireData(resData);
                    sInstance.m_mapRes.Add(resName, data);
                }
                sInstance.m_mapRes[resName].AddRequireOwner(owner);
                sInstance.m_mapRes[resName].Used();
                if (sInstance.m_mapRes[resName].Complete)
                {
                    sInstance.m_mapRes[resName].CompleteCallBack();
                }
                return(owner);
            }

            if (sInstance.m_mapRes.ContainsKey(resName))
            {
                //增加需求者
                sInstance.m_mapRes[resName].AddRequireOwner(owner);
                sInstance.m_mapRes[resName].Used();
                if (sInstance.m_mapRes[resName].Complete)
                {
                    sInstance.m_mapRes[resName].CompleteCallBack();
                }
            }
            else
            {
                ResourceRequireData rrd = new ResourceRequireData(
                    path, autoSave, utime, autoClear, resType,
                    encrypt_type, sInstance.m_delDecryptFunc);
                sInstance.m_lstRequires.Add(rrd);
                sInstance.m_mapRes.Add(resName, rrd);
                rrd.AddRequireOwner(owner);
            }

            return(owner);
        }
 /// <summary>
 /// 删除资源资源需求
 /// </summary>
 /// <param name="name"></param>
 /// <param name="owner"></param>
 public static void UnloadResource(string name, ResourceRequireOwner owner)
 {
     if (sInstance.m_mapRes.ContainsKey(name))
     {
         sInstance.m_mapRes[name].RemoveRequireOwner(owner);
         //倘若资源需求为空
         if (sInstance.m_mapRes[name].IsOwnerEmpty())
         {
             //如果可以卸载 或者 加载未完成则卸载资源
             if (CanUnload(name) || !sInstance.m_mapRes[name].Complete)
             {
                 sInstance.m_mapRes[name].Destory(false);
                 sInstance.m_lstRequires.Remove(sInstance.m_mapRes[name]);
                 sInstance.m_mapRes.Remove(name);
                 Resources.UnloadUnusedAssets();
             }
         }
     }
     else
     {
         Debug.LogError("Has not resource " + name);
     }
 }
Exemplo n.º 10
0
        /// <summary>
        /// Requests the resouce.
        /// </summary>
        /// <returns>The resouce.</returns>
        /// <param name="path">Path.</param>
        /// <param name="autoSave">If set to <c>true</c> auto save.</param>
        /// <param name="utime">Utime.</param>
        /// <param name="autoClear">If set to <c>true</c> auto clear.</param>
        /// <param name="resType">Res type.</param>
        /// <param name="encrypt_type">Encrypt_type.</param>
        /// <param name="func">Func.</param>
        /// <param name="error_call">Error_call.</param>
        /// <param name="arg">Argument.</param>
        public static ResourceRequireOwner RequestResouce(
            string path , bool autoSave , long utime , bool autoClear , RESOURCE_TYPE resType,
            ENCRYPT_TYPE encrypt_type, REQUEST_FINISH_CALLBACK func ,
            REQUEST_ERROR_CALLBACK error_call,object[] arg
            )
        {
            if (sInstance.m_delDecryptFunc == null && encrypt_type == ENCRYPT_TYPE.ENCRYPT )
            {
                // Error
                // 没有资源解密接口
                return null;
            }

            string resName = (new Uri(path)).AbsolutePath;

            ResourceRequireOwner owner = new ResourceRequireOwner();
            owner.m_cResName = resName;
            //            owner.m_strResValue = resValue;
            owner.m_delCallBack = func;
            owner.m_delErrorCall = error_call;
            owner.m_eResType = resType;
            owner.m_vecArg = arg;
            if ( sInstance.m_eLoadType != LOAD_TYPE.NORMAL )
            {
                UnityEngine.Object obj = LoadEditor(resName);
                if (!sInstance.m_mapRes.ContainsKey(resName))
                {
                    object resData = null;
                    switch( resType )
                    {
                    case RESOURCE_TYPE.WEB_ASSETBUNLDE:
                    case RESOURCE_TYPE.WEB_TEXTURE:
                        resData = obj;
                        break;
                    case RESOURCE_TYPE.WEB_TEXT_BYTES:
                        resData = (obj as TextAsset).bytes;
                        break;
                    case RESOURCE_TYPE.WEB_TEXT_STR:
                        resData = (obj as TextAsset).text;
                        break;
                    }
                    ResourceRequireData data = new ResourceRequireData(resData);
                    sInstance.m_mapRes.Add(resName, data);
                }
                sInstance.m_mapRes[resName].AddRequireOwner(owner);
                sInstance.m_mapRes[resName].Used();
                if(sInstance.m_mapRes[resName].Complete)
                {
                    sInstance.m_mapRes[resName].CompleteCallBack();
                }
                return owner;
            }

            if (sInstance.m_mapRes.ContainsKey(resName))
            {
                //增加需求者
                sInstance.m_mapRes[resName].AddRequireOwner(owner);
                sInstance.m_mapRes[resName].Used();
                if (sInstance.m_mapRes[resName].Complete)
                {
                    sInstance.m_mapRes[resName].CompleteCallBack();
                }
            }
            else
            {
                ResourceRequireData rrd = new ResourceRequireData(
                    path , autoSave ,utime ,autoClear, resType,
                    encrypt_type, sInstance.m_delDecryptFunc);
                sInstance.m_lstRequires.Add(rrd);
                sInstance.m_mapRes.Add(resName, rrd);
                rrd.AddRequireOwner(owner);
            }

            return owner;
        }
 /// <summary>
 /// 增加资源需求者
 /// </summary>
 /// <param name="owner"></param>
 public bool AddRequireOwner(ResourceRequireOwner owner)
 {
     this.m_lstOwners.Add(owner);
     return true;
 }
 /// <summary>
 /// 删除需求者
 /// </summary>
 /// <param name="owner"></param>
 /// <returns></returns>
 public bool RemoveRequireOwner(ResourceRequireOwner owner)
 {
     return this.m_lstOwners.Remove(owner);
 }
 /// <summary>
 /// 删除需求者
 /// </summary>
 /// <param name="owner"></param>
 /// <returns></returns>
 public bool RemoveRequireOwner(ResourceRequireOwner owner)
 {
     return(this.m_lstOwners.Remove(owner));
 }
 /// <summary>
 /// 增加资源需求者
 /// </summary>
 /// <param name="owner"></param>
 public bool AddRequireOwner(ResourceRequireOwner owner)
 {
     this.m_lstOwners.Add(owner);
     return(true);
 }