public void CacheChunks(Chunk[] chunks) { for (int j = 0; j < chunks.Length; j++) { if (chunks[j].hasMesh) { chunks[j].gameObject.SetActive(false); } } for (int i = 0; i < triggerObjects.Length; i++) { float nearestDist = Mathf.Infinity; Chunk nearestChunk = null; LatLon position = GeoCoord.GetLatLon(planet, triggerObjects[i].position); for (int j = 0; j < chunks.Length; j++) { float dist = GeoCoord.GetDistance(position, chunks[j].centre); if (dist < nearestDist) { nearestDist = dist; nearestChunk = chunks[j]; } } if (nearestChunk != null) { ActivateChunk(nearestChunk); Chunk[] connectedChunks = nearestChunk.ConnectedChunks; for (int j = 0; j < connectedChunks.Length; j++) { ActivateChunk(connectedChunks[j]); } } } }