// Uses the neighbours given to the node to generate edges public void ManualEdgeCreation() { foreach (GameObject node in neighbours) { NodeScript neighbourNode = node.GetComponent <NodeScript>(); //don't add edge if already exists if (node != null && node != this && this.FindEdgeTo(neighbourNode) == null) { EdgeScript edge = new EdgeScript(this, neighbourNode); edge.SetCost((node.transform.position - this.transform.position).magnitude); edges.Add(edge); } } }
// Generate edges for auto grid generation public void GenerateEdges() { Collider[] neighbourNodes = Physics.OverlapBox(transform.position, transform.localScale); foreach (Collider nodeCollider in neighbourNodes) { NodeScript node = nodeCollider.gameObject.GetComponent <NodeScript>(); if (node != null && node != this) { EdgeScript edge = new EdgeScript(this, node); edge.SetCost((node.transform.position - this.transform.position).magnitude); edges.Add(edge); } } }