Вычисление 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) из локальной системы координат в глобальную (в твоем случае как раз с нужным поворотом)
