Локальное вращение

168
21 августа 2018, 19:10

Я хочу заствить куб поворачиватся на 90 градусов каждый раз когда я нажимаю на одну из половин экрана. (С нажатием и определением сторон экрана проблем нет) Куб должен повернутся строго на 90 градусов и после каждого его поворота его позицию нужно признать (0,0,0) но я не могу понять как это реальзовать. На премере этого скриншота, я поверну куб на 90 градусов по оси z и у меня фиолетовый цвет будет на верху. После чего я поверну куб по оси X и у меня должен зеленый цвет встать на место фиолетогого. Но выходит иначе, я вижу такую картину что оси смещаются во время поворота.

           if (touch.position.x > Camera.main.scaledPixelWidth/2)
            {
             Box.transform.Rotate(new Vector3(90, 0, 0), 90f);
            }
            if (touch.position.x < Camera.main.scaledPixelWidth/2)
            {
             Box.transform.Rotate(new Vector3(0, 0, -90), 90f);
Answer 1

Если вращение происходит вокруг начала координат, то после поворота на 90 градусов вокруг любой базовой оси куб сместится в другой октант пространства.

Чтобы он оставался в том же положении (но с другой ориентацией), матрицу преобразования нужно модифицировать - смещение на -Size/2 по всем координатам, вращение, обратное смещение.

Edit:

Посмотрел - в unity есть функция

 RotateAround(Vector3 point, Vector3 axis, float angle);

point в данном случае середина куба, axis соответственно оси вращения - например, (1,0,0) для вращения вокруг оси, параллельной OX.

READ ALSO
Пример использования веб-сокетов на php с workerman

Пример использования веб-сокетов на php с workerman

приведите, пожалуйста, пример использования библиотеки workermanВесь интернет испещрен примерами типа helloworld, которых я уже по памяти десяток...

231
GetCurPage в Битрикс

GetCurPage в Битрикс

Как в битриксе перечислить страницы в конструкции:

194
Как добавить изображение в товар UMI CMS?

Как добавить изображение в товар UMI CMS?

В кастомном обработчике ивента, произвожу запись из одного поля товара в другое, но изображение почему-то не записываетсяКод:

197
Как сгруппировать элементы массивов?

Как сгруппировать элементы массивов?

Подскажите, пожалуйста, идеи, как можно сгруппировать такого рода массивы:

198