Curso de Unity 3D

Curso de Unity 3D

Puzzle con RayCast

Para que funcionen los rayos, cada pieza con la que va a colisionar el rayo debe tener un BoxCollider.

Descargar Juego terminado
Descargar Piezas

Pasos en la realización del videojuego Puzzle con RayCast

Seleccionar una pieza (lanzar un rayo 2D y 3D)

Mover pieza con RayCast

Explicación del método mover pieza.

Un rayo es infinito. Nos interesa mover la pieza al punto correcto de profundidad; por eso utilizamos la variable longitudRayo.

limiteRayo será el segmento que va desde la cámara, hasta el punto en que colisionamos con el bounding box de la pieza. Sin embargo, si la pieza tiene profundidad z=0, la bounding box tendrá una profundidad diferente y cada vez que llamemos a moverPieza() cambiaremos su ubicación, porque el origen de coordenadas de la pieza no coincide con el punto de impacteato, y la pieza se desplazará.

Unity 3D bounding box

Poner las piezas que se están moviendo por delante

Arrastrar y soltar

Comprobar si he dejado la pieza en la posición correcta

Tendré dos listas de piezas: fichasMoviles (que serán las que el usuario desplazará) y fichasSolución (cuyo componente SpriteRenderer desactivaré para que no se vean y que contendrá las piezas en su ubicación final).

Detectar cuando el puzzle está completo

Desordenar piezas

Desordenar piezas al cabo de un tiempo

Creamos el atributo global permitirJugar para que si el jugador pulsa sobre una pieza antes de que estas se desordenen no sea tenido en cuenta en el recuento de piezas movidas correctamente.