Unity Spain

Mesa de ayuda => Unity3D => Scripting => Mensaje iniciado por: Megadok en Junio 18, 2019, 08:34:35 PM

Título: Orbitar alrededor de objeto en 2d
Publicado por: Megadok en Junio 18, 2019, 08:34:35 PM
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?
Título: Orbitar alrededor de objeto en 2d
Publicado por: luciferk9 en Junio 18, 2019, 10:52:46 PM
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;
}

 
 
Título: Orbitar alrededor de objeto en 2d
Publicado por: PmL_Unity en Noviembre 02, 2019, 08:45:29 PM
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 # (//%5Byoutube%5Dhttps://www.youtube.com/watch?v=3PHc6vEckvc%5B/youtube%5D&t=536s)
 
 
 
Saludos.