Траектория снаряда: достижение определенных координат - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь реализовать в моей игре функцию, которая будет автоматически блокировать цель и бросать снаряд так, чтобы он идеально падал на нее.Я сделал математику, чтобы вычислить параболу из Player 1 -> Target, где бы ни находились их позиции, но понял, что хотел использовать физическую систему Unity вместо того, чтобы мяч шел по траектории.

Бросок скорость является постоянным, игрок 1 и цель являются движущимися объектами, но их позиции будут зарегистрированы один раз только для вычисления начального угла броска.

Я считаю, что эту формулу мне нужно использовать: enter image description here

Но как я могу применить ее для моего Игрока и Цели, имеющих 3D-координаты?

Вот псевдокод того, что я пытался написать в Unity, чтобы сделать его более читабельным.

float velocity = 100f; 
float g = Physics.gravity;
Transform x = Target.position.x - Player.position.x;
Transform y = Target.position.z - Player.position.z;
double theta;

theta = **big formula using the values above**

И после этого я не знаю, как использовать это значение для добавления силы кснаряд.Я хотел использовать AddForce (x, y, z, ForceMode.Impulse);но я явно не могу использовать начальный угол здесь, только значения x и y.Использование RigidBody.velocity = Vector3 (vx, vy, vz);дает мне ту же проблему.

Я считаю, что упускаю что-то тривиальное, но я действительно застрял в этом.Кто-нибудь сможет помочь?

...