//Weitere Methode, welche beim anklicken des Toggles aufgerufen wird //Diese Methode aktualisiert den isSink-Wert der Node in dem entsprechenden Node-Objekt public void SetSink() { //Der aktuelle Tabellenindex der angeklickten Node int currentIndex = gameObject.transform.parent.GetSiblingIndex() - 1; //Test-Ausgabe Debug.Log("Sink Index: " + currentIndex); //Node-Liste wird aus dem CController geladen und in lokale Liste gespeichert nodes = ccont.GetAllNodes(); //Senke updaten foreach (Node n in nodes) { if (n != nodes[currentIndex]) { n.setSink(false); if (!n.isSource) { ccont.GetNodeAsGameObject(n.getName()).transform.GetChild(0).GetChild(0).GetComponent <MeshRenderer>().material = ccont.nodeMaterial; } } else { n.setSink(true); ccont.GetNodeAsGameObject(n.getName()).transform.GetChild(0).GetChild(0).GetComponent <MeshRenderer>().material = ccont.sinkMaterial; } } //Node-Liste im CController aktualisieren ccont.SetAllNodes(nodes); }
//Weitere Methode, welche beim Anklicken des Toggles aufgerufen wird public void SetSource() { //Der aktuelle Index des Knotens in der Tabelle //Dieser Stimmt mit dem Index des korrepsondierenden Knotens in der Node-Liste überein int currentIndex = gameObject.transform.parent.GetSiblingIndex() - 1; //Test-Ausgabe um den Index zu überprüfen Debug.Log("Source Index: " + currentIndex); //Die Node-Liste aus der CController auslesen nodes = ccont.GetAllNodes(); // Quelle einfärben //Quelle updaten foreach (Node n in nodes) { if (n != nodes[currentIndex]) { n.setSource(false); if (!n.isSink) { ccont.GetNodeAsGameObject(n.getName()).transform.GetChild(0).GetChild(0).GetComponent <MeshRenderer>().material = ccont.nodeMaterial; } } else { n.setSource(true); ccont.GetNodeAsGameObject(nodes[currentIndex].getName()).transform.GetChild(0).GetChild(0).GetComponent <MeshRenderer>().material = ccont.sourceMaterial; } } //Die Node-Liste aus dem CController wird aktualisiert ccont.SetAllNodes(nodes); }