public void spawnAdjacentObjects() { adjacentPolygons.Clear(); foreach (AdjacentObject obj in adjacentObjects) { Vector3 targetPos = obj.getRange() * MathS.angleToUnitVector(obj.getAngle()); GameObject g = findObjAtPos(transform.position + targetPos); if (g == null) { g = Instantiate(getPolygon(obj.getShape()), transform.position + targetPos, Quaternion.Euler(0, 0, obj.getRotation() + transform.parent.transform.eulerAngles.z)) as GameObject; g.name = this.transform.parent.name; //g.name = "Polygon"; } else { if (g.tag != "Polygon") { continue; //if border, ignore } adjacentPolygons.Add(g.GetComponent <TessellationPolygon>()); g.SendMessage("AddPolygon", this); } } }
public void drawRays() { foreach (AdjacentObject obj in adjacentObjects) { Debug.DrawRay(transform.position, obj.getRange() * MathS.angleToUnitVector(obj.getAngle()), Color.green); } }
//Searches for polygons when initialized, signals objects it finds to add this new polygon to their own list private int countAdjacentPolygons() { int initialized = 0; int uninitialized = 0; foreach (AdjacentObject obj in adjacentObjects) { Vector3 targetPos = obj.getRange() * MathS.angleToUnitVector(obj.getAngle()); GameObject g = findObjAtPos(transform.position + targetPos); if (g != null) { if (g.tag != "Polygon") { continue; //if border, ignore } initialized++; //if it already exists, increment the initialized counter } else { uninitialized++; //if it doesn't exist, increment the uninitalized counter } } script.SendMessage("AddAdjacents", uninitialized); return(initialized + uninitialized); }