/// <summary> /// 與節點進行連線 /// </summary> private void ConnectNode() { _redPointSystem = GameObject.FindWithTag(RedPointSystem.GameTag).GetComponent <RedPointSystemBase>(); var currentNodeEnum = NodeEnum; RedPointNode = _redPointSystem.Find(currentNodeEnum); RedPointNode.OnUpdate += OnUpdate; }
/// <summary> /// 保持順序性的更新 /// Tree 是擁有階層的所以更新也要擁有順序 /// </summary> /// <param name="node"></param> /// <param name="dataObject"></param> private void UpdatePriority(RedPointNode node, object dataObject) { if (node == null) { return; } foreach (var n in node.Children) { if (n.Children.Count > 0) { UpdatePriority(n, dataObject); } n.Update(dataObject); // Debug.Log("DoPriorityUpdate::node Name:"+n.Name); } }
/// <summary> /// 遞迴找出所有子物件的紅點數量 /// </summary> /// <param name="node"></param> /// <returns></returns> private int TotalNumCount(RedPointNode node) { if (node == null) { return(0); } if (node.Children.Count == 0) { return(0); } var total = 0; foreach (var child in node.Children) { total += child.NumCount + TotalNumCount(child); } return(total); }
public void AddChild(RedPointNode node) { Children.Add(node); }