Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Rouless en Julio 17, 2015, 07:17:21 PM

Título: Hacer rotar y avanzar un objeto de forma uniforme
Publicado por: Rouless en Julio 17, 2015, 07:17:21 PM
Muy buenas a todos.Os explico mi problema (últimamente demasiados... aix): estoy haciendo un videojuego donde el personaje lanza piruletas, unas piruletas que avanzan y a medida que avanzan van rotando sobre si mismas en el eje Z (nótese que el juego es en 2D). El problema es que como va rotando, el eje X de la piruleta tambien va rotando y por tanto al avanzar hacia el eje X, si este va rotando, la piruleta va dando vueltas en circulo. Pensé que animando la rotacion y programando la translacion se arreglaria (iluso de mi....) pero nop.Entonces, como hago para que rote y eso no afecte a la translacion? PD: Si además me decís como hacer para que la piruleta salga disparada en la dirección que mira el personaje..... os chupo los pies 3:) jajajajaja Gracias por la atención, un saludo!
Título: Hacer rotar y avanzar un objeto de forma uniforme
Publicado por: francoe1 en Julio 17, 2015, 10:15:33 PM
Bien, en principio deberías separar el Modelo del Controller, el jugador debería estar de la siguiente ManeraControllerPlayer
-Camera
-Modelo
 "Dentro de ControllerPlayer metes la cámara y el modelo."Un gran consejo, cuando Animes tus modelos o sprite jamas modifiques el Pivote este siempre va en el suelo.
Título: Hacer rotar y avanzar un objeto de forma uniforme
Publicado por: Jose134 en Julio 17, 2015, 10:28:42 PM
Aplica lo que ha dicho francoe1francoe1 sobre la organizaciob del personaje a las piruletas PiruletaObject  (el que avanza)-PiruletaSprite     (el que rota) Con eso se deberia arreglar. En cuanto a lo de que salgan disparadas hacia donde mira el personaje depende de como funcione el personaje
Título: Hacer rotar y avanzar un objeto de forma uniforme
Publicado por: ProgramacionWH en Julio 18, 2015, 11:26:45 PM
Otra opcion seria que lo movieras usando coordenadas World por ejemplo usando AddForce en vez de AddRelativeForce o usando Transform.translate(*****,Space.World) en lugar de Transform.Translate(********).Depende de como hayas implementado el movimiento, sin duda lo que te han indicado funcionara sin problemas Un saludo :I
Título: Hacer rotar y avanzar un objeto de forma uniforme
Publicado por: Rouless en Julio 18, 2015, 11:33:16 PM
Muchas gracias a los dos, ha funcionado!