Comunidad orientada al desarrollo de videojuegos

Unity3D – MiniMap para juego de carreras

Vamos a ver como hacer un mini mapa, de una forma muy sencilla, para un juego de carreras de coches.

Lo primero que voy a hacer es montar un plano (Circuito) en la escena con una textura de un circuito que he encontrado por internet, así ya tendremos montado nuestro circuito de carreras. Me voy a permitir usar un coche que ya esta montado y listo para funcionar (Sport Coupe).

MiniMap01

 

Lo siguiente que voy a hacer, es recortar el trazado del circuito, que usare mas adelante como textura para el MiniMap

MiniMap02

 

Ahora, creamos un nuevo material transparente, Transparent/Diffuse en mi caso, duplicamos el plano del circuito (CircuitoMiniMap) y le asignamos el nuevo material con la textura transparente que hemos hecho en Photoshop.

MiniMap03

 

Vamos a crear una nueva Layer llamada MiniMap, para poder englobar en esta Layer todos los elementos que queremos que renderizar en el mini mapa.

MiniMap04

 

Le asignamos la nueva Layer de MiniMap al plano con la textura transparente y le quitamos el componente Mesh Collider ya que no vamos a necesitar colisiones en este GameObject.

MiniMap05

 

Bueno, ya tenemos un plano con el mapa del circuito en la Layer MiniMap, ahora necesitamos una cámara que solo renderice los elementos que estén en esa capa/Layer. Para ello, nos creamos una cámara nueva, la ponemos como Orthographic, la colocamos desde una vista superior y ajustamos sus valores para que quede bien la imagen del mini mapa. Para que solo salgan los elementos de la capa MiniMap, tenemos que quitar todas las opciones en Culling Mask y luego, seleccionar la capa MiniMap, al contrario que en la cámara principal, en la que debemos quitar el Layer de MiniMap. Tenemos que tener en cuenta 2 cosas mas,  Clear Flags tenemos que ponerlo a Depth only para que no renderice el background de la cámara y sea transparente. También debemos cambiar el parámetro Depth de la cámara, para que esté por encima de la MainCamera y de esta forma veamos el renderizado de esta cámara sobre la otra.

MiniMap06

 

Ajustamos el ancho y el alto de la imagen que saca la cámara para adaptarlo al tamaño que mas nos guste.

MiniMap07

 

Ya lo tenemos todo prácticamente montado, solo necesitamos un punto que nos marque donde está nuestro coche en el mini mapa, así que nos creamos un plano y le quitamos el Collider, le asignamos un material que queramos (en mi caso un Transparente con una textura que hace de alpha y le he puesto un color base rojo), metemos este plano dentro del GameObject del coche y cambiamos la Layer del plano a MiniMap, para que su renderizado salga por la cámara de minimap y no por la de MainCamera

MiniMap08

 

Bueno, esto es todo, bastante rápido y sencillo. Aquí podéis probar la demo online.

MiniMap09

, , ,

Leave a Reply