Пришел к русским умам т.к. американские давали слишком глупые советы.
И так, изучаю юнити. Решил сделать руль, который можно вращать бесконечно методом в стиле drag & drop.
Выглядит таком образом. У меня есть штурвал
Вращаю я его на 360 (от 0 до 360), он крутится.
Дальше, у меня есть куб - мне надо передавать ему значение вращения штурвала, но деленное на 2 к примеру. Число деления должно быть переменной.
Америкосы мне советуют в ЛС на сайте такую штуку:
Синтаксис:
Используется javascript
wheel_roation_angle = transform.eulerAngles.z / 2;
Но я то понимаю, что это бред. Выходит, что мой штурвал проверулся на 360 градусов, я считал ровно половину - т.е. 180 градусов. Как только штурвал проходит 360 - снова начинаем с 0 и так до бесконечности.
Так же и отнесенный к нему объект вращается от 0 до 180. А мне надо, чтоб я сделал 2 полных вращения к примеру - объект провернулся на 1.
Банальный подсчет количества вращений не предлагайте, не то.
В итоге имеем такой код сейчас, где objectB второй объект нуждающийся в "деленном" повороте.
Синтаксис:
Используется javascript
transform.rotation = Quaternion.Euler(0,180, targetAngle);
wheel_roation_angle= transform.eulerAngles.z;
objectB.transform.rotation = Quaternion.Euler ( 0, wheel_roation_angle, 0 );
wheel_roation_angle= transform.eulerAngles.z;
objectB.transform.rotation = Quaternion.Euler ( 0, wheel_roation_angle, 0 );
Весь поворот происходит в function OnMouseDrag, т.е. не в постоянном Update и соотв. как-то надо решить без Time.deltaTime эту задачу
Я уже чувствую тупым себя. На ActionScript для флеша я такое делал когда-то за 10 минут. Но там другая математика - не надо заморачиваться с дибильными углами Еулера.
По-этому перенеси сюда логику невозможно.
Моя задача из вот этой строки wheel_roation_angle= transform.eulerAngles.z; сделать что-то, что поможет решить вопрос, что же передавать сюда objectB.transform.rotation = Quaternion.Euler ( 0, wheel_roation_angle, 0 );
помогите кто чем может пожалуйста )