Я работаю над проектом в Unity 4.6. Мне интересно, есть ли простой способ программно установить расположение вершин. В настоящее время мой код выглядит так (C#):
public void createPoints(float x, float y, float z) {
point [0] = new Vector3 (x, y, z);
point [1] = new Vector3 (x, y, -z);
point [2] = new Vector3 (x, -y, z);
point [3] = new Vector3 (x, -y, -z);
point [4] = new Vector3 (-x, y, z);
point [5] = new Vector3 (-x, y, -z);
point [6] = new Vector3 (-x, -y, z);
point [7] = new Vector3 (-x, -y, -z);
}
Где x, y и z — заранее определенные значения, а точка — Vector3[] (массив). Центр призмы должен быть точкой 0,0,0 (
public void createPoints(float originalX, float originalY, float originalZ) {
for (int i = 0; i < 8; i++) { //8 vertices exist of a rectangular prism
point [i] = new Vector3 (x, y, z);
}
}
Как мне изменить этот код, чтобы генерировать эти положительные и отрицательные моменты? Я предполагаю, что это своего рода чередование положительных и отрицательных значений для x, y и z с использованием модуля i или округления деления i на какое-то другое целое число, однако я не могу обернуть свой мозг вокруг него. C# или UnityScript подходят.
Другими словами, на каждой итерации цикла for x = -x, для каждого чего-то y = -y< /code>, для каждого чего-то z = -z.
Любая помощь в этом вопросе будет очень признательна.
Я работаю над проектом в Unity 4.6. Мне интересно, есть ли простой способ программно установить расположение вершин. В настоящее время мой код выглядит так (C#):
[code]public void createPoints(float x, float y, float z) { point [0] = new Vector3 (x, y, z); point [1] = new Vector3 (x, y, -z); point [2] = new Vector3 (x, -y, z); point [3] = new Vector3 (x, -y, -z); point [4] = new Vector3 (-x, y, z); point [5] = new Vector3 (-x, y, -z); point [6] = new Vector3 (-x, -y, z); point [7] = new Vector3 (-x, -y, -z); } [/code]
Где x, y и z — заранее определенные значения, а точка — Vector3[] (массив). Центр призмы должен быть точкой 0,0,0 ([code]Vector3(0,0,0)[/code] в Unity).
В качестве примера используются следующие значения:
[list] [*]x = 1 [*]y = 2 [*]z = 3 [/list]
Сгенерированные баллы должны быть следующими ([b]порядок не имеет значения[/b]):
Мой вопрос: есть ли способ сгенерировать эти точки без практического жесткого кодирования значений?
Мой текущий код для желаемого решения:
[code]public void createPoints(float originalX, float originalY, float originalZ) { for (int i = 0; i < 8; i++) { //8 vertices exist of a rectangular prism point [i] = new Vector3 (x, y, z); } } [/code]
Как мне изменить этот код, чтобы генерировать эти положительные и отрицательные моменты? Я предполагаю, что это своего рода чередование положительных и отрицательных значений для x, y и z с использованием модуля i или округления деления i на какое-то другое целое число, однако я не могу обернуть свой мозг вокруг него. C# или UnityScript подходят.
Другими словами, на каждой итерации цикла for x = -x, для каждого чего-то y = -y< /code>, для каждого чего-то z = -z.
Любая помощь в этом вопросе будет очень признательна.