Exemplo n.º 1
0
    public HierarchyItem Create(string name, string label, bool draggable = true, GameObject reference = null, HierarchyItem parent = null, HierarchyItem originalParent = null)
    {
        var itemFromResource = Resources.Load <HierarchyItem>(Constants.HIERARCHY_ITEM_PREFAB);
        var instanceItem     = Instantiate <HierarchyItem>(itemFromResource, Vector3.zero, Quaternion.identity);
        var textItem         = instanceItem.text;

        textItem.text          = label;
        instanceItem.draggable = draggable;
        instanceItem.name      = name;
        instanceItem.reference = reference;
        if (parent.IsNotNull())
        {
            instanceItem.SetParent(parent);
            instanceItem.gameObject.SetActive(parent.expanded);
        }
        if (originalParent.IsNotNull())
        {
            instanceItem.originalParentId = originalParent.GetID();
        }
        // item contains into container
        instanceItem.transform.SetParent(container.transform);
        instanceItem.transform.localScale = Vector3.one;
        instanceItem.onDragEndEvent      += (sender, dragEndPosition) => OnHierarchyItemDragEnd(sender, dragEndPosition);
        items.Add(instanceItem);
        // release memory
        textItem         = null;
        itemFromResource = null;
        return(instanceItem);
    }
Exemplo n.º 2
0
    void OrderSibling(HierarchyItem item, ref int index)
    {
        if (item.IsNull())
        {
            return;
        }
        item.transform.SetSiblingIndex(++index);
        var children = GetChildren(item.GetID());

        foreach (var child in children)
        {
            OrderSibling(child, ref index);
        }
        children = null;
    }