bool isAlreadyUsed(NodeController node1, NodeController node2, int id) { //regarder chaque edge, foreach (Transform t in ListeEdges.transform) { //si un edge est égal à node1-node2 et que son id est le même alors on retourne true EdgeController actualEdge = t.GetComponent <EdgeController>(); if ((actualEdge.Node1() == node1 || actualEdge.Node2() == node1) && (actualEdge.Node1() == node2 || actualEdge.Node2() == node2) && actualEdge.idMessage == id) { return(true); } //sinon, false } return(false); }
private void actualizePositionEdges(GameObject liste_edges) { foreach (Transform edgeTransform in liste_edges.transform) { EdgeController edge = edgeTransform.GetComponent <EdgeController>(); if (edge.gameObject.activeSelf) { //pour chaque edge, on récupère les positions des deux bouts //et on détermine où le edges doit aller Vector3 pos1 = edge.Node1().GetTransform().position; Vector3 pos2 = edge.Node2().GetTransform().position; Vector3 n = pos2 - pos1; float distance = (n).magnitude; float alpha = angle(n.x, n.y); edge.transform.position = (pos1 + pos2) / 2.0f; edge.transform.localScale = new Vector3(distance * 1 / 8.5f, edge.epaisseur, 1); edge.transform.localEulerAngles = new Vector3(0, 0, alpha); } } }