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 AddSortedIn(GroupInputNodeVisual n) { for (int i = 0; i < groupIns.Count; i++) { if (n.transform.position.y > groupIns[i].transform.position.y) { groupIns.Insert(i + 1, n); return; } } groupIns.Add(n); }