예제 #1
0
 public void OnBeginDrag(PointerEventData eventData)
 {
     if (draggedInstance.IsNotNull())
     {
         Destroy(draggedInstance.gameObject);
     }
     if (!draggable)
     {
         return;
     }
     draggedInstance = Instantiate <HierarchyItem>(this, eventData.position, Quaternion.identity, canvas.transform);
     draggedInstance.rectTransform.pivot = new Vector2(0f, 1f);
     dragging = true;
 }
예제 #2
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);
    }