Есть два танка, которые стреляют друг в друга. Между ними есть препятствия при чем наивысшее препятствие не всегда посередине. Нужно сделать так, чтобы танк которым управляет компьютер, попадал в другой танк максимально точно.
Я пытался делать на глаз и получается оно тоже очень на глаз. Угол выставляю такой, что пушка смотрит прямо на самую высокую точку и беру запас 10 градусов.
Vector3 highestPoint;
Vector3 throwVector = highestPoint - gameObject.transform.position;
float anglef = Mathf.Atan2 (throwVector.y, throwVector.x) * Mathf.Rad2Deg - 10; // повернуть на 10 градусов выше
SetAngle (anglef);
Далее, если взять по формулах
//время полета
// h - разница высоты между самой высокой точкой и текущим положением танка, т.е. расстояние, которое нужно преодолеть по высоте
float time = Mathf.Sqrt (2 * h / g);
// скорость, с которой нужно выпустить пулю
// S - расстояние, которое нужно преодолеть по координате X. Разница по х между текущим танком и танком игрока
float speed = S / time;
Но все как-то криво и через одно место выходит. Подскажите формулу?