Esempio n. 1
0
    /// <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);
    }
Esempio n. 2
0
 /// <summary>
 /// Деактивирует элемент и помещает его в пул доступных объектов.
 /// </summary>
 public void DestroyElement(LayoutElement element)
 {
     ElementsStack.Push(element);
     activeElements.Remove(element);
     element.gameObject.SetActive(false);
 }