private void SetPoints() { lastMidpoint = Midpoint(); size = Mathf.Min(dx, dy, dz) / 4f; width = 2 * gridRadius + 1; while (gridPoints.Count > width * width * width) { Destroy(gridPoints[0].gameObject); gridPoints.RemoveAt(0); } for (int z = -gridRadius; z <= gridRadius; z++) { for (int y = -gridRadius; y <= gridRadius; y++) { for (int x = -gridRadius; x <= gridRadius; x++) { int i = (x + gridRadius); i += (y + gridRadius) * width; i += (z + gridRadius) * width * width; if (i >= gridPoints.Count) { GameObject obj = new GameObject("Mono Measurement (" + i + ")"); MonoMeasurement3D mono = obj.AddComponent <MonoMeasurement3D>(); mono.SetSize(size); mono.SetMeasurement(new Measurement3D(0, 0, 0, true), false); obj.transform.parent = transform; gridPoints.Add(mono); } Vector3 v = new Vector3(lastMidpoint.x + x * dx, lastMidpoint.y + y * dy, lastMidpoint.z + z * dz); if (measurementPlacer.Contains(v)) { gridPoints[i].gameObject.SetActive(false); } else { gridPoints[i].SetMeasurement(new Measurement3D(v, true), true); gridPoints[i].gameObject.SetActive(true); } } } } }
// Use this for initialization void Start() { measurements = new List <MonoMeasurement3D>(); lastMidpoint = Midpoint(); float size = Mathf.Min(dx, dy, dz) / 4f; for (int i = 0; i < 125; i++) { GameObject obj = new GameObject("Mono Measurement (" + i + ")"); MonoMeasurement3D mono = obj.AddComponent <MonoMeasurement3D>(); mono.SetSize(size); mono.SetMeasurement(new Measurement3D(0, 0, 0, true), false); obj.transform.parent = transform; measurements.Add(mono); } SetPoints(); }