using UnityEngine; namespace CrawfisSoftware { public class LightProbesCreator : MonoBehaviour { [SerializeField] private Vector3 lowerBottomLeft; [SerializeField] private Vector3 upperTopRight; [Range(2, 30)] [SerializeField] private int numberInX = 5; [Range(2, 30)] [SerializeField] private int numberInZ = 5; [Range(2, 30)] [SerializeField] private int numberInY = 2; public void Create() { Vector3 delta = upperTopRight - lowerBottomLeft; float deltaX = delta.x / (float) (numberInX-1); float deltaZ = delta.z / (float) (numberInZ-1); float deltaY = delta.y / (float) (numberInY-1); Vector3[] probePositions = new Vector3[numberInX * numberInY * numberInZ]; var group = gameObject.AddComponent(); group.name = "Auto Generated Light Probes"; int index = 0; for (int i = 0; i < numberInX; i++) { float x = i * deltaX + lowerBottomLeft.x; for (int j = 0; j < numberInY; j++) { float y = j * deltaY + lowerBottomLeft.y; for (int k = 0; k < numberInZ; k++) { float z = k * deltaZ + lowerBottomLeft.z; probePositions[index] = new Vector3(x, y, z); index++; } } } group.probePositions = probePositions; } } }