Прежде всего, я сообщу вам, что я новичок в Unity и в кодировке в целом (я знаю очень простой код javascript). Мой вопрос: как я могу поворачивать 2D-объект (prefab) на 120 градусов на определенной оси (в моем случае ось z, так что он вращается, как будто вы смотрите на рулевое колесо) каждый раз, когда я касаюсь экрана. Сейчас у меня есть это так:Unity2D - Как повернуть 2D-объект при касании/нажмите/нажмите
function TouchOnScreen()
{
if (Input.touchCount > 0)
{
var touch = Input.touches[0];
if (touch.position.x < Screen.width/2)
{
transform.rotation = Quaternion.Euler(0,0,120);
Debug.Log("RotateRight");
}
else if (touch.position.x > Screen.width/2)
{
transform.rotation = Quaternion.Euler(0,0,-120);
Debug.Log("RotateLeft");
}
}
}
Этот код поворачивает объект всякий раз, когда я нажимаю на определенной части экрана, но не так, как я хочу его. Я хочу, чтобы он вращался, поэтому вы видите объект, вращающийся от A до B, но не (как сейчас) в одном кадре от A до B. Кроме того, этот код позволяет мне только вращать один раз в каждом направлении.
Как это сделать, когда я нажимаю на определенную сторону экрана, что он добавляет или вычитает из/в предыдущий вращающийся угол, поэтому я могу продолжать вращаться.
ПРИМЕЧАНИЕ: Пожалуйста, используйте javascript, и если вы знаете более простой код, дайте мне знать!
Помощь приветствуется, спасибо заранее!
то, что вы здесь делаете устанавливает вращение на преобразование ... то, что я рекомендовал бы исследуя это вместо установки 'transform.rotation ', установив« TARGET »и в вашей логической функции записи обновлений, чтобы анимировать объекты« transform.rotation »по отношению к этой цели. – Joe
Спасибо, что ответили! Но может быть, вы могли бы дать мне пример сценария, хотя я понимаю, что вы мне объясняете, я все еще слишком неквалифицирован, чтобы изменить ваше объяснение на сценарий :( – Bartvb98