Esempio n. 1
0
        /// <summary>
        /// Move obj to pool in hirerachy and enqueue for key
        /// </summary>
        /// <param name="key">Key.</param>
        /// <param name="obj">Object.</param>
        public void Release(string key, GameObject obj)
        {
            GOPoolElement elem = poolMap.Get(key);

            if (elem == null)
            {
                Debug.LogErrorFormat("Name {0} prefab doesn't registed", key);
                return;
            }
            obj.transform.SetParent(inactivePool);
            elem.pool.Enqueue(obj);
        }
Esempio n. 2
0
        /// <summary>
        /// Get obj for key and move to below of parent in hirerachy
        /// </summary>
        /// <param name="key">Key.</param>
        /// <param name="parent">Parent.</param>
        public GameObject Get(string key, Transform parent)
        {
            GOPoolElement elem = poolMap.Get(key);

            if (elem == null)
            {
                Debug.LogErrorFormat("Name {0} prefab doesn't added to pool", key);
                return(null);
            }
            Queue <GameObject> queue = elem.pool;
            GameObject         obj   = queue.Empty() ? null : queue.Dequeue();

            if (obj == null)
            {
                obj = Object.Instantiate(elem.prefab);
            }
            obj.transform.SetParent(parent);
            return(obj);
        }