У меня есть винтик, который пользователь может повернуть, чтобы повернуть подъемный мост.В настоящее время у меня есть шестеренка и разводной мост, вращающиеся с одинаковой скоростью, например так: https://gyazo.com/14426947599095c30ace94a046e9ca21
Вот мой текущий код:
[SerializeField] private Rigidbody2D thingToRotate;
void OnMouseDrag()
{
Vector3 mousePosition = Input.mousePosition;
mousePosition = Camera.main.ScreenToWorldPoint(mousePosition);
Vector2 direction = new Vector2(
mousePosition.x - transform.position.x,
mousePosition.y - transform.position.y
);
transform.right = direction;
thingToRotate.transform.up = transform.right;
}
По сути, он получает положение мыши, работаетрасстояние между мышью и разводным мостом, затем устанавливает угол на основе вектора.Проблема в том, что угол разводного моста идентичен зубцам.
Я хочу, чтобы, когда пользователь поворачивает шестеренку, он лишь немного поворачивает объект, чтобы пользователь мог повернуть шестеренку несколько раз, прежде чемРазводные мосты закрываются.
Я попытался добавить к углу Эйлера разводные мосты.Я попытался установить вращение разводных мостов на вращение шестерни и разделить это вращение на 2.
Есть ли функция для установки угла на основе другого угла?Или даже способ установки поворота в виде соотношения или другого?