/// <summary> /// 构造函数 /// </summary> public PoolGroup(IResResponse rawGameResResponse) { rawResResponse = rawGameResResponse; if (null != rawResResponse && null != rawGameResResponse.Data) { rawObjectName = rawResResponse.Data.name; } Init(); }
/// <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(); } }
/// <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); }
/// <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(); } }
/// <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); }