Я хочу нарисовать 3d-круг и 3d-куб в центре круга на unity3d. Я создаю 6 граней куба ниже код:Как нарисовать несколько 3D-объектов на единстве?
mesh.vertices = new Vector3[]{
// face 1 (xy plane, z=0)
new Vector3(0,0,0),
new Vector3(1,0,0),
new Vector3(1,1,0),
new Vector3(0,1,0),
// face 2 (zy plane, x=1)
new Vector3(1,0,0),
new Vector3(1,0,1),
new Vector3(1,1,1),
new Vector3(1,1,0),
// face 3 (xy plane, z=1)
new Vector3(1,0,1),
new Vector3(0,0,1),
new Vector3(0,1,1),
new Vector3(1,1,1),
// face 4 (zy plane, x=0)
new Vector3(0,0,1),
new Vector3(0,0,0),
new Vector3(0,1,0),
new Vector3(0,1,1),
// face 5 (zx plane, y=1)
new Vector3(0,1,0),
new Vector3(1,1,0),
new Vector3(1,1,1),
new Vector3(0,1,1),
// face 6 (zx plane, y=0)
new Vector3(0,0,0),
new Vector3(0,0,1),
new Vector3(1,0,1),
new Vector3(1,0,0),
};
я создаю круг вокруг куба ниже код:
float x;
float y;
float z = 0.5f;
float angle = 1f;
for (int i = 0; i < (segments + 1); i++)
{
x = 0.5f + Mathf.Sin (Mathf.Deg2Rad * angle) * xradius;
y = 0.5f + Mathf.Cos (Mathf.Deg2Rad * angle) * yradius;
line.SetPosition (i,new Vector3(x,y,z));
angle += (360f/segments);
}
я ожидаю, что верхние индексы делают верхнюю задачу. Но они этого не делают. Я вижу куб и круг. Но куб не является cenetr круга 3d. z не подходит для меня.
Мой скриншот ниже:
Должен ли я использовать несколько камеры для этой работы?
Ваш код выглядит хорошо, на первый взгляд. Во всяком случае, я бы в основном хотел проверить компонент преобразования на кубах и объектах камеры. Кто-то из них повернулся на сцене? – rutter
Они вращаются в сцене. Но я думаю, что x вращение круга неверно. В верхнем изображении углы куба и круга не похожи друг на друга. – zumma
Точки на 'Mesh' находятся в локальном пространстве. Точки на 'LineRenderer' находятся в мировом пространстве. Один будет следовать его трансформации, а другой - нет. При необходимости вы можете отрегулировать это, вызвав 'transform.TransformPoint' при назначении точек линии. – rutter