private void Bound() { DSTerrain terrain = terrainObj.GetComponent <DSTerrain>(); Vector3 newPos = new Vector3(transform.position.x, transform.position.y, transform.position.z); float terrainWidth = terrain.findWidth(terrain.nverts) * 0.7f; float terrainHighPoint = terrain.findMaxHeight(terrain.nverts); // Keep the camera inside the terrain's bounds if (newPos.x > terrainWidth - dy) { newPos.x = terrainWidth - dy; } if (newPos.x < -terrainWidth + dy) { newPos.x = -terrainWidth + dy; } if (newPos.z > terrainWidth - dy) { newPos.z = terrainWidth - dy; } if (newPos.z < -terrainWidth + dy) { newPos.z = -terrainWidth + dy; } if (newPos.y > 3 * terrainHighPoint - dy) { newPos.y = 3 * terrainHighPoint - dy; } transform.position = newPos; }