public void AddNode(NodeVisual n) { GameObject tmp = new GameObject("tmp"); WaitAndDo t = tmp.AddComponent <WaitAndDo>(); t.arg = n; t.act = (object arg) => { NodeVisual node = (NodeVisual)arg; serializer.Add(node.node, new Position2(node.transform.position)); serializer.PrepareForSerialization(); if (node.GetType() == typeof(GroupInputNodeVisual)) { //group input GroupInputNodeVisual nn = (GroupInputNodeVisual)node; ((GroupInputNode)nn.node).host = this; AddSortedIn(nn); UpdateInputs(); } else if (node.GetType() == typeof(GroupOutputNodeVisual)) { //group output GroupOutputNodeVisual nn = (GroupOutputNodeVisual)node; ((GroupOutputNode)nn.node).host = this; AddSortedOut(nn); UpdateOutputs(); } }; //if it's an input/output add it to the list }
private void AddSortedOut(GroupOutputNodeVisual n) { for (int i = 0; i < groupOuts.Count; i++) { if (n.transform.position.y > groupOuts[i].transform.position.y) { groupOuts.Insert(i + 1, n); return; } } groupOuts.Add(n); }