Exemple #1
0
        public XObjectPoolDataBase FindUnUsed(string name)
        {
            if (!m_ObjectPool.ContainsKey(name))
            {
                Debug.LogWarning("对象池没有这个对象:" + name);
                return(null);
            }
            for (int i = 0; i < m_ObjectPool[name].Count; i++)
            {
                if (!m_ObjectPool[name][i].IsUsed)
                {
                    m_ObjectPool[name][i].Used();
                    return(m_ObjectPool[name][i]);
                }
            }
            XObjectPoolDataBase xObject = FindObjectPoolObject(name);

            if (xObject == null)
            {
                return(null);
            }
            XObjectPoolDataBase cObject = CreateTemplate(xObject);

            cObject.Used();
            m_ObjectPool[name].Add(cObject);
            return(cObject);
        }
Exemple #2
0
        private XObjectPoolDataBase CreateTemplate(XObjectPoolDataBase template)
        {
            XObjectPoolDataBase item = Instantiate(template);
            Transform           trs  = item.GetComponent <Transform>();

            trs.SetParent(transform);
            //trs.localScale = Vector3.one;
            trs.localPosition = Vector3.zero;
            //trs.localRotation = Quaternion.identity;
            item.UnUsed();
            return(item);
        }