Noticias

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

Ayuda!! Shooter en tercera persona

Iniciado por Cesar Acosta, Agosto 26, 2017, 11:26:58 PM

Tema anterior - Siguiente tema
Agosto 26, 2017, 11:26:58 PM Ultima modificación: Agosto 26, 2017, 11:37:58 PM por Cesar Acosta
bueno el problema que tengo es que no se como hacer para que solo la mitad del personaje pueda rotar para que a la hora de apuntar pueda inclinarse en la posición de la camara 
 
Seria de mucha ayuda si alguien me explicara 

Hola cesar, mira si das esa poco info nadie tiene de donde agarrarse para darte una respuesta certera, depende enteramente de la composicion de tu personaje, la parte del codigo es facil con un simple transform.Rotate y limitando cuanto rota lo podes hacer.
 
Lo unico que decis es la mitad gira vs la otra mitad no, mi respuesta podria ser pone el script que usas para apuntar en la mitad que gira y listo.
 
Generalmente habra otro tipo de giro que sera el de la mitad que no "apunta", este lo podes hacer cuando la parte movil gira hacia un limite (ponele a izq unos 70 grados respecto al eje del centro) los pies giran un cierto angulo acomodandose de nuevo el eje central (ahora te queda manos a 0°, es decir girar unos 70 grados a izq), entonces los pies responden siempre a las manos.

lo siento por la falta de información 
 
la idea es que pueda rotar de la cintura para arriba en el eje z mientras camina 
 
las animaciones ya tienen un layer
 
lo único que necesito es que cuando la camara esta mirando hacia abajo el personaje pueda apuntar con un arma hacia esa dirección 
 
no se si me explico 
 
 

Buenas,
 
Intentaré pasarte el script completo pero como no se si va a ser posible voy a intentar darte las indicaciones para que puedas hacerlo tu mismo.
 
Basicamente tienes que rotar la espina del personaje en la dirección de la cámara, hay varias maneras de hacerlo, yo voy a indicarte una, el siguiente script estaría asignado a la espina del personaje (tambien puedes acceder al transform de la espina desde otro script) :
 
 
 

Ray ray = new Ray(Camera.main.transform.position, Camera.main.transform.forward);
transform.LookAt(ray.GetPoint(30));

 
 
 
Tendras que ajustar el valor del parametro del "GetPoint()", depende del personaje.
 
Para terminar, hacer un personaje en tercera persona es bastante laborioso, hay que ajustar los parametros hasta que el personaje mire en la dirección adecuada. Cualquier duda comentala, como he dicho intentaré programar el script completo pero no se si podré.
 
Un saludo.

Necesitas hacerlo con IK,, mira este apartado de la documentación te puede ser de mucha ayuda.
 
https://docs.unity3d.com/es/current/Manual/InverseKinematics.html
 
 

Etiquetas: