/// <summary> /// 递归创建树节点 /// </summary> /// <param name="parentID">Parent I.</param> /// <param name="parentDataList">Parent data list.</param> public void whileItem(string parentID, IList <UTreeData> parentDataList) { UTreeData parentTreeData = this.GetItemData(parentID); int level = 0; if (parentTreeData != null) { level = parentTreeData.level + 1; } foreach (UTreeData uTreeData in parentDataList) { this.itemIndex++; uTreeData.level = level; UTreeItem uTreeItem = this.CreateTreeItem(this.itemIndex); NGUITools.SetActive(uTreeItem.gameObject, true); uTreeItem.ChangeData(uTreeData, OnItemClickHandler); uTreeItem.transform.localPosition = new Vector3(0f, this.itemHeight - this.itemIndex * this.itemHeight, 0f); if (uTreeData.expand) { IList <UTreeData> childDataList = this.GetChildrenDataList(uTreeData.id); if (childDataList != null && childDataList.Count > 0) { this.whileItem(uTreeData.id, childDataList); } } } }
/// <summary> /// 创建树节点 /// </summary> /// <returns>The tree item.</returns> /// <param name="index">Index.</param> private UTreeItem CreateTreeItem(int index) { if (index >= 0 && this.itemList != null && index <= this.itemList.Count) { return(this.itemList[index - 1].GetComponent <UTreeItem>()); } if (this.uTreeItem == null) { return(null); } GameObject treeItemObject = (GameObject)Instantiate(this.uTreeItem.gameObject); treeItemObject.GetComponent <RectTransform>().SetParent(m_RootParent); treeItemObject.transform.localScale = Vector3.one; UTreeItem uTreeItem = treeItemObject.GetComponent <UTreeItem>(); this.itemList.Add(uTreeItem); return(uTreeItem); }