コード例 #1
0
ファイル: UITree.cs プロジェクト: dfengwji/unity
        private UITreeNode CloneTreeNode()
        {
            UITreeNode result = Instantiate(nodePrefab);

            result.transform.SetParent(container);
            return(result);
        }
コード例 #2
0
ファイル: UITree.cs プロジェクト: dfengwji/unity
 public void RemoveItem(UITreeNode treeNode)
 {
     if (null == poolParent)
     {
         poolParent = new GameObject("CachePool").transform;
     }
     treeNode.transform.SetParent(poolParent);
     //treeNode.gameObject.SetActive(false);
     poolList.Add(treeNode);
 }
コード例 #3
0
ファイル: UITreeNode.cs プロジェクト: dfengwji/unity
 protected void CloseChildren()
 {
     for (int i = 0; i < children.Count; i++)
     {
         UITreeNode node = children[i];
         node.RemoveListener();
         node.CloseChildren();
     }
     tree.RemoveItems(children);
     children.Clear();
 }
コード例 #4
0
ファイル: UITree.cs プロジェクト: dfengwji/unity
        public UITreeNode AddItem(UITreeData data, int siblingIndex)
        {
            UITreeNode treeNode = null;

            if (poolList.Count > 0)
            {
                treeNode = poolList[0];
                poolList.RemoveAt(0);
            }
            else
            {
                treeNode = CloneTreeNode();
            }
            treeNode.transform.SetParent(container);
            treeNode.gameObject.SetActive(true);
            treeNode.transform.localScale = Vector3.one;
            treeNode.Inject(data, clickFun);
            treeNode.transform.SetSiblingIndex(siblingIndex + 1);
            return(treeNode);
        }