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); }
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); }