Example #1
0
 public static void InitPool(IPoolData data)
 {
     if (!dataDictionary.ContainsKey(data.Prefab.name))
     {
         dataDictionary.Add(data.Prefab.name, data);
         CreatePool(data);
     }
 }
Example #2
0
        /// <summary>
        /// 删除对象池
        /// </summary>
        /// <param name="poolName">对象池名</param>
        /// <returns></returns>
        public ObjectPool DestroyPool(string poolName)
        {
            if (_poolDic.ContainsKey(poolName))
            {
                IPoolData pool = _poolDic[poolName];
                _poolDic.Remove(poolName);
                pool.Destroy();
                GameApp.Instance.LogError($"对象池:{poolName} 删除成功");
            }
            else
            {
                GameApp.Instance.LogError($"对象池:{poolName} 不存在");
            }

            return(this);
        }
Example #3
0
        static void CreatePool(IPoolData data)
        {
            if (!poolDictionary.ContainsKey(data.Prefab.name))
            {
                var count = data.Capacity > 0 ? data.Capacity : baseCapacity;
                poolDictionary.Add(data.Prefab.name, new Queue <ObjectData>());

                objectGroupDictinary.Add(data.Prefab.name, new GameObject($"[POOL] {data.Prefab.name} group").transform);
                if (data.DontDestroy)
                {
                    GameObject.DontDestroyOnLoad(objectGroupDictinary[data.Prefab.name].gameObject);
                }

                for (int i = 0; i < count; i++)
                {
                    ExtendPool(data.Prefab);
                }
            }
        }
Example #4
0
    public void Consume(IPoolData _data)
    {
        TokenPoolData data = (TokenPoolData)_data;

        this._originalScale = transform.localScale;
        _strength = data.Strength;
        SetScale();

        _textMesh.text = data.Strength.ToString();
        _sourceTeam = data.SourceTeam;
		_tokenImage.color = data.SourceTeam.TeamColour;
        gameObject.SetActive(true);
        transform.SetParent(data.ParentTransform, false);
    }