private void BuildTreeRec(TriggerEditorNode node) { foreach (Transform child in node.TriggerComponent.transform) { EventFilter filter = child.GetComponent <EventFilter>(); EventResponder responder = child.GetComponent <EventResponder>(); TriggerActionGroup actionGroup = child.GetComponent <TriggerActionGroup>(); if (filter) { FilterEditorNode filterNode = new FilterEditorNode(filter, _context); node.Add(filterNode); BuildTreeRec(filterNode); } else if (responder) { ActionEditorNode actionNode = new ActionEditorNode(responder, _context); node.Add(actionNode); BuildTreeRec(actionNode); } else if (actionGroup) { ActionGroupEditorNode groupNode = new ActionGroupEditorNode(actionGroup, _context); node.Add(groupNode); BuildTreeRec(groupNode); } } }
private void GetStateByNode(TriggerEditorNode node, Dictionary <MonoBehaviour, TriggerEditorNode> state) { if (node.TriggerComponent != null) { state.Add(node.TriggerComponent, node); } foreach (var child in node) { GetStateByNode(child, state); } }
private void SyncNodeState(TriggerEditorNode node, Dictionary <MonoBehaviour, TriggerEditorNode> state) { if (node.TriggerComponent != null && state.ContainsKey(node.TriggerComponent)) { node.Expanded = state[node.TriggerComponent].Expanded; } foreach (TriggerEditorNode child in node) { SyncNodeState(child, state); } }