/// <summary> /// Инстанцирует элемент с префаба или достаёт из пула. /// </summary> /// <returns></returns> public LayoutElement InstantiateElement(bool gameObjActive = true) { LayoutElement element; if (ElementsStack.Count > 0) { element = ElementsStack.Pop(); } else { element = Instantiate <LayoutElement>(elementPrefab); element.transform.SetParent(this.transform); } element.gameObject.SetActive(gameObjActive); if (activeElements == null) { activeElements = new List <LayoutElement>(); } activeElements.Add(element); element.transform.SetAsLastSibling(); element.transform.localScale = Vector3.one; return(element); }
/// <summary> /// Деактивирует элемент и помещает его в пул доступных объектов. /// </summary> public void DestroyElement(LayoutElement element) { ElementsStack.Push(element); activeElements.Remove(element); element.gameObject.SetActive(false); }