Noticias

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

Detectar colisión antes de girar

Iniciado por Vicks, Julio 27, 2015, 05:04:06 PM

Tema anterior - Siguiente tema
Buenas, estoy haciendo poco a poco un tetris para familiarizarme con Unity.Ya he aprendido muchas cosas y tengo una buena base de programación. Mis atascos normalmente son (como este caso) en como realizar ciertas tareas. Ahora mismo estoy en la parte de hacer que la pieza activa (la que está manejando el jugador en cada momento) detecte si habrá colisión, o no, antes de girar la pieza.Por supuesto todo va a base de colliders, la pieza activa consta de 4 bloques hijos y en cada uno de estos hay asignado un boxcollider. Había pensado una par de formas de como hacer la detección de colisión al rotar:1. Usando una copia "fantasma" de los boxcolliders, o desvincular estos de los bloques que se renderizan y girar ese conjunto de boxcolliders antes de girar los cubos.2. Lanzar raycasts desde el centro, hacia puntos determinados (4?) para ver si hay espacio para girar.Todavía no me he lanzado a probarlo, pero pienso que la opción más cómoda es la 1. ¿Que opináis? o ¿se os ocurre alguna manera mejor de hacerlo?P.D: No estoy usando una matriz para el tablero, que sería la manera "tradicional" de procesar las casillas y demás.

Yo creo que la mejor manera es la que dices tu, crear una copia fantasma de la pieza la cual al darle al boton para rotarla, solo rote esta. Si no colisiona con nada, entonces que gire la pieza activa. Debe ser un proceso rapido.

Etiquetas: