protected override void OnUpdate() { if (!hasProcessed) { for (int i = 0; i < groupIns.Count; i++) {//set data from inputs to inputs nodes if (inputs[i].hasData) { ((GroupInputNode)groupIns[i].node).SetData(inputs[i].GetData()); inputs[i].hasData = false; } } } //updates nodes for (int i = 0; i < serializer.nodes.Length; i++) { //if this if a groupe input, give it data serializer.nodes[i].Update(); //if this is a groupe output, get the data } //set data from output node to outputs for (int i = 0; i < groupOuts.Count; i++) { GroupOutputNode node = (GroupOutputNode)groupOuts[i].node; if (node.hasData) { outputs[i].SetData(node.data); node.hasData = false; ProcessSingleOutput(outputs[i]); } } hasProcessed = false; }
public void UpdateOutputs() { SortOuts(); for (int i = 0; i < groupOuts.Count; i++) { if (outputs.Count > i) { //update current output AnyTypeOutput outp = (AnyTypeOutput)outputs[i]; GroupOutputNode node = (GroupOutputNode)groupOuts[i].node; outp.SetDataType(node.inp.GetDataType()); } else { //create new output Debug.Log("creating new output"); GroupOutputNode node = (GroupOutputNode)groupOuts[i].node; AnyTypeOutput outp = new AnyTypeOutput(this, node.inp.GetDataType()); outputs.Add(outp); } } //supprime les autres output while (outputs.Count > groupOuts.Count) { outputs.RemoveAt(groupOuts.Count); } }