Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Temas recientes

Orbitar alrededor de objeto en 2d

Iniciado por Megadok, Junio 18, 2019, 08:34:35 PM

Tema anterior - Siguiente tema
Hola! Tengo una nave 2d en mi juego Top view y me gustaría añadirle un drone ayudante, que orbitara ("Hiciera círculos" ) alrededor de mi nave. Me gustaría que el drone no deformara su orbita cuando la nave se mueva.
 
 
 
¿Alguna idea?

Utiliza el seno del tiempo, esto te va a dar valores del -1 al 1. Entonces el drone ya se podría mover de izquierda a derecha. El resultado lo multiplicas por la distancia que quieras que haya entre tu nave y el drone. Repite lo mismo con el coseno del tiempo pero el resultado lo aplicas al eje vertical.
 
Esto te va a dar la posición con respecto al origen del mundo, o sea, siempre va estar alrededor de (0, 0). Para que vaya alrededor de tu nave solamente sumas la posición de la nave a la posición que calculaste del drone.
 
No puedo probarlo ahora mismo pero sería algo así:
 

public Transform nave;
public float distancia = 5f;
private void Update() {
     // Sin retorna un valor entre -1 y 1 a medida que el tiempo avanza
var x = Mathf.Sin(Time.time);
     // Igual el coseno. Ambas funciones juntas forman un circulo
     var y = Mathf.Cos(Time.time);
    
     // No sé que ejes estás usando pero suponiendo que es un top-down literal
     // "X" y "Z" serían los ejes
     // Esta posición estaría entre [(-1, -1); (1, 1)]
     var nuevaPosicion = new Vector3(x, 0, y);
     
     nuevaPosicion *= distancia;
     // Le sumamos la posición de la nave para que este alrededor de ella
     nuevaPosicion += nave.position;
}

 
 

Hola, quizas este video te puede ayudar si es que ya lo resolviste.
 
Girar alrededor u orbitar un objeto de juego en Unity 3D C #
 
 
 
Saludos.

Etiquetas: