示例#1
0
 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);
         }
     }
 }
示例#2
0
 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);
     }
 }
示例#3
0
    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);
        }
    }