Noticias

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

como podria hacer que un player fuese alrededor de una figura?

Iniciado por 0c0de, Diciembre 14, 2016, 02:13:11 PM

Tema anterior - Siguiente tema
Diciembre 14, 2016, 02:13:11 PM Ultima modificación: Diciembre 14, 2016, 03:16:28 PM por 0c0de
Vereis estoy haciendo un juego pero lo quiero mejorar el juego en si es sencillo tienes un nivel (el primero es un circulo) y un jugador tambien un circulo pues el circulo rota alrededor del nivel destruyendo los enemigos que aparezcan, bien ahora quiero añadirle un nivel para que cuando llegue a X puntos cambie y este sera un cuadrado pero el problema viene en que no se como hacer que se mueva por el cuadrado es decir por los bordes solo

Hola, el metodo que uses para recorrer el borde de un cuadrado puede variar segun el tipo de juego que tengas, el tipo de personaje y de que componentes tenga este. Osea, no es tan facil de reponder con ponele esto y aquello y estas, incluso hay juegos que se basan casi completamente en este tipo de mecanicas.
 
Los caminos que se me ocurren ahora (seguramente hay muchos mejores) podrian ser usar raycast, con tres rays apuntando al suelo (tipo groundcheck), si uno no capta nada sabes en que esquina del cuadrado estas(de las dos que podes estar, izq o der), si luego de esto sucede que el ray del centro no capta nada (te saliste del cuadrado) posicionas el jugador en la cara correspondiente del cuadrado y empezas de nuevo. Si tu personaje salta y demas ya la cosa cambia porque tenes gravedad, de las fisicas del motor o simulada por vos, no importa, ahi ya tenes que tener en consideracion algunos aspectos (que los vas a resolver por prueba y error como se resuelve todo).
 
Otro es si conoces las dimensiones del cuadrado, y tenes registro de en que posicion de la cara estas con tu jugador podes chequear si este supero un cierto valor y cambiarlo de cara.
 
Otro podria ser si tu player es un rigidbody aplicarle una gravedad hacia el centro del objeto, ya se independiza de la forma geometrica pero si es un cuadrado y estas cerca de los bordes el player se va a arrastrar hasta el centro de la cara lo cual no es deseado.
 
 

Yo tambien habia pensado en poner dos raycast y hacerlo por ese metodo pero he preguntado aqui mas que nada por saber si habia algun metodo menos engorroso que ese de todas maneras gracias por la respuesta hare lo del raycast al final

Lo bueno del raycast es que podes tomar la normal del suelo para moverte e implementar niveles de todo tipo, hexagonos, cuadrados, hasta circulos

Como que tomar la normal del suelo me puedes explicar eso? por favor

El vector normal, un vector perpendicular al "suelo". conociendo dicho vector y el vector z relativo a tu transform (para 2D) podes hacer el producto vectorial de estos dos y obtenes un vector perperdicular a estos dos ---> la direccion paralela a cada cara donde estas parado.
 
 

Etiquetas: