public override void Invoke() { if (m_ChildNodes.Count == 0) { InvokeEvent.Invoke(); return; } switch (NodeInvokeMode) { case InvokeMode.TreeDownToTop: case InvokeMode.TreeTopToDown: case InvokeMode.TreeReverseTopToDown: case InvokeMode.TreeReverseDownToTop: InvokeTreeMode(); break; case InvokeMode.LayerTopToDown: case InvokeMode.LayerReverseTopToDown: InvokeLayerTopToDown(); break; case InvokeMode.LayerDownToTop: case InvokeMode.LayerReverseDownToTop: InvokeLayerDownToTop(); break; } }
protected virtual void InvokeTreeReverseMode() { if (NodeInvokeMode == InvokeMode.TreeReverseTopToDown) { InvokeEvent.Invoke(); } for (var i = m_ChildNodes.Count - 1; i >= 0; --i) { if (m_ChildNodes[i].EnableSelf) { m_ChildNodes[i].Invoke(); } } if (NodeInvokeMode == InvokeMode.TreeReverseDownToTop) { InvokeEvent.Invoke(); } }
protected virtual void InvokeTreeMode() { if (NodeInvokeMode == InvokeMode.TreeTopToDown) { InvokeEvent.Invoke(); } for (var i = 0; i < m_ChildNodes.Count; i++) { if (m_ChildNodes[i].EnableSelf) { m_ChildNodes[i].Invoke(); } } if (NodeInvokeMode == InvokeMode.TreeDownToTop) { InvokeEvent.Invoke(); } }
protected virtual void InvokeTreeMode() { if (NodeInvokeMode == InvokeMode.TreeTopToDown || NodeInvokeMode == InvokeMode.TreeReverseTopToDown) { InvokeEvent.Invoke(); } var enumerator = m_ChildNodes.GetEnumerator(); while (enumerator.MoveNext()) { if (enumerator.Current.EnableSelf) { enumerator.Current.Invoke(); } } if (NodeInvokeMode == InvokeMode.TreeDownToTop || NodeInvokeMode == InvokeMode.TreeReverseDownToTop) { InvokeEvent.Invoke(); } }