Exemple #1
0
        /// <summary>
        /// 构造函数
        /// </summary>
        public PoolGroup(IResResponse rawGameResResponse)
        {
            rawResResponse = rawGameResResponse;
            if (null != rawResResponse && null != rawGameResResponse.Data)
            {
                rawObjectName = rawResResponse.Data.name;
            }

            Init();
        }
Exemple #2
0
 /// <summary>
 /// 释放资源
 /// </summary>
 /// <param name="_assetName"></param>
 public void UnloadAsset(string _assetName)
 {
     if (true == resResponseDic.ContainsKey(_assetName))
     {
         IResResponse resResponse = resResponseDic[_assetName];
         //if (null != asset)
         //{
         //    Resources.UnloadAsset(asset);
         //}
         resResponseDic.Remove(_assetName);
         resResponse.UnLoad();
     }
 }
Exemple #3
0
        /// <summary>
        /// 创建对象池 包含预加载数量以及最大数量的版本
        /// </summary>
        /// <param name="_rawResResponse"></param>
        /// <param name="_preloadNumber">预加载数量</param>
        /// <param name="_maxCount">总大小</param>
        /// <returns></returns>
        public IPoolGroup CreatePool(IResResponse _rawResResponse, int _preloadNumber, int _maxCount)
        {
            if (null == _rawResResponse)
            {
                return(null);
            }
            IPoolGroup group = GetPoolGroup(_rawResResponse.SourceDataName);

            if (null != group)
            {
                return(group);
            }
            group = CreatePool(_rawResResponse);
            group.SetPreloadNumber(_preloadNumber).SetMaxCount(_maxCount);
            return(group);
        }
Exemple #4
0
        /// <summary>
        /// 创建一个内存池,并且直接启动
        /// </summary>
        /// <param name="_rawResResponse"></param>
        /// <param name="_preloadNumber">预加载数量</param>
        /// <param name="_maxCount">最大数量</param>
        /// <param name="_intervalCheck">间隔检测时间</param>
        /// <param name="_expireTime">过期时间</param>
        public void CreatePool(IResResponse _rawResResponse, int _preloadNumber, int _maxCount, int _intervalCheck,
                               int _expireTime)
        {
            IPoolGroup group = GetPoolGroup(_rawResResponse.SourceDataName);

            if (null != group)
            {
                return;
            }
            group = CreatePool(_rawResResponse, _preloadNumber, _maxCount);
            if (null != group)
            {
                group.SetMaxCount(_maxCount).SetCleraIntervalTime(_intervalCheck).SetExpiredTime(_expireTime);
                group.Run();
            }
        }
Exemple #5
0
        /// <summary>
        /// 通过源数据创建一个内存池
        /// </summary>
        /// <param name="_rawResResponse"></param>
        /// <returns></returns>
        public IPoolGroup CreatePool(IResResponse _rawResResponse)
        {
            if (null == _rawResResponse)
            {
                return(null);
            }
            IPoolGroup group = GetPoolGroup(_rawResResponse.SourceDataName);

            if (null != group)
            {
                return(group);
            }
            IPoolGroup resultPool = new PoolGroup(_rawResResponse);
            string     rawName    = _rawResResponse.SourceDataName;

            if (false == poolGroups.ContainsKey(rawName))
            {
                resultPool.RawDataName = rawName;
                poolGroups.Add(rawName, resultPool);
            }
            return(resultPool);
        }