Есть сцена с боксами. Нужно при каждом нажатии на кнопку вращать выбранный бокс. Сейчас бокс вращается только при первом клике на кнопку. При последующих нажатиях реакции нет.
Если для полного поворота, то я бы поворачивал на 360, а затем при выходе из функции кнопки ставил угол поворота бокса в 0. Тогда можно будет при следующем нажатии поворачивать бокс снова на 360.
RedHairOnMyHead: нужно что-бы бокс каждый раз вращался на 90 градусов вокруг одной оси. В идеале на одной кнопке он вращается в одну сторону, а при клике на вторую - в другую сторону.
Станислав Королевский: допустим изначально положение = 0 градусов, при нажатии на кнопку прибавляем 90 к текущему положению и выполняем вращение, далее в конце функции кнопки проверяем, не >= ли угол поворота 360, и если он больше или равен, то ставим его в ноль.
Станислав Королевский: проблема в том, что вы в одной переменной (angle) смешали "куда надо повернуть" и "насколько надо повернуть"
как уже верно подметил RedHairOnMyHead, сейчас вы даете команду к "повернуть к углу 90 градусов", а надо "повернуть к текущему углу + 90 градусов". найдите, где в boxOne у вас хранится текущий угол поворота и уже к нему прибавляйте angle
Вячеслав Бельтюков: В этом то и проблема. Я могу обратиться к углу по конкретной оси, например cubes.boxOne.eulerAngles.y Но, этот метод совершенно не дружит с моим angle который в SCNVector4. Теоретически должно получиться что-то в стиле: cubes.boxOne.eulerAngles.y += angle