Единство заставляет ракету следовать заданной траектории - PullRequest
0 голосов
/ 14 ноября 2018

Я создаю игру, в которой можно стрелять ракетами по танкам.Я хочу, чтобы ракета следовала по этой траектории:

https://imgur.com/a/bRQ44zq

Я перепробовал несколько вещей, но не повезло.У кого-нибудь есть идеи о том, как мне достичь этой траектории?

Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 14 ноября 2018

Вы должны искать: баллистику, пушку, физику баллистики, шаровую параболу и т. Д.

Вот пример стрельбы по мячу при трансформации: https://answers.unity.com/questions/148399/shooting-a-cannonball.html

У меня сейчас нет открытого Unity, поэтому я не могу дать вам полный код. Кстати, попробуйте изменить код ниже для вашего собственного использования и дайте мне знать в комментариях.

 function BallisticVel(target: Transform, angle: float): Vector3 {
     var dir = target.position - transform.position;  // get target direction
     var h = dir.y;  // get height difference
     dir.y = 0;  // retain only the horizontal direction
     var dist = dir.magnitude ;  // get horizontal distance
     var a = angle * Mathf.Deg2Rad;  // convert angle to radians
     dir.y = dist * Mathf.Tan(a);  // set dir to the elevation angle
     dist += h / Mathf.Tan(a);  // correct for small height differences
     // calculate the velocity magnitude
     var vel = Mathf.Sqrt(dist * Physics.gravity.magnitude / Mathf.Sin(2 * a));
     return vel * dir.normalized;
 }

 var myTarget: Transform;  // drag the target here
 var cannonball: GameObject;  // drag the cannonball prefab here
 var shootAngle: float = 30;  // elevation angle

 function Update(){
     if (Input.GetKeyDown("b")){  // press b to shoot
         var ball: GameObject = Instantiate(cannonball, transform.position, Quaternion.identity);
         ball.rigidbody.velocity = BallisticVel(myTarget, shootAngle);
         Destroy(ball, 10);
     }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...