Я пытаюсь написать алгоритм, который будет разбивать произвольный квадрант на меньшие квадратики, все из которых имеют одинаковые масштабы x, y и z (так, кубы). Прямо сейчас у меня есть код, который разбивает квадроциклы на уменьшенные версии, но я бы хотел, чтобы соотношение составляло 1: 1: 1. Как мне изменить код ниже, чтобы сделать это?Как бы я разделил произвольный куб на кубики меньшего размера?
for (int x=0; x < 2; x++) {
for (int y=0; y < 2; y++) {
for (int z=0; z < 2; z++) {
GameObject newCube = Instantiate(gameObject);
newCube.transform.localScale = new Vector3(
newCube.transform.localScale.x/2,
newCube.transform.localScale.y/2,
newCube.transform.localScale.z/2
);
newCube.transform.position = new Vector3(
newCube.transform.position.x + ((x-0.5f) * newCube.transform.localScale.x),
newCube.transform.position.y + ((y-0.5f) * newCube.transform.localScale.y),
newCube.transform.position.z + ((z-0.5f) * newCube.transform.localScale.z)
);
}
}
Destroy(gameObject);
уточнить .. произвольный QUAD (должен быть) плоский объект с 4 вершинами. Масштабированный QUAD не является квадратным или кубическим. Если вы действительно хотите кубы вместо этого, вы говорите о сетках, а не о QUAD. Итак, что это (что конкретно представляет собой пример ввода)? Также, сколько квадратов/кубов/QUADS вы хотите в подразделении (на основе области/объема/размера, постоянной, как 4, другой)? Ответ действительно различен для каждой комбинации этого. Изменено название, чтобы оно соответствовало вашему коду – Spektre