Вычисление Vector2 для AddForce() с учётом поворота по оси Z

Всем привет! Делаю проект в 2Д возникла сложность с вычислением вектора для метода AddForce(). Необходимо толкнуть объект с учётом его угла по оси Z. Решил с помощью костыля разместил перед точкой спавна еще один объект. Хотелось бы реализовать то же самое но более элегантно

public override void Move(Transform spawnPosition, Transform target)
{
    // Двигаем объект на точку спавна
    rb.transform.position = spawnPosition.position;
    rb.transform.rotation = spawnPosition.rotation;

    // Вычисляем вектор направления с помощью координат вспомогательного объекта
    Vector2 forceDirection = target.transform.position - spawnPosition.position;

    rb.AddForce(forceDirection, ForceMode2D.Impulse);
}

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Ivan Rechkin
Vector2 forceDirection = transform.TransformDirection(Vector3.up)

Так ты переведешь вектор (0, 1) из локальной системы координат в глобальную (в твоем случае как раз с нужным поворотом)

→ Ссылка