Usando GridMaps¶
Introducción¶
Gridmaps son una herramienta para crear niveles de juego en 3D, similar a la forma en que TileMap funciona en 2D. Comienzas con una colección predefinida de mallas 3D (una class_MeshLibrary`) que pueden ser colocadas en un gruid, como si estuvieras construyendo un nivel con una cantidad ilimitada de bloques de Lego.
Las colisiones y la navegación también se pueden añadir a las mallas, como se haría con los tiles de un mapa de tiles.
Proyecto ejemplo¶
Para aprender cómo funcionan los GridMaps, empieza descargando el proyecto de muestra: gridmap_demo.zip
.
Descomprime este proyecto y agrégalo al Gestor de Proyectos usando el botón "Importar".
Creando una MeshLibrary¶
Para empezar, necesitas una MeshLibrary, que es una colección de mallas individuales que pueden ser usadas en el gridmap. Abre la escena "MeshLibrary_Source.tscn" para ver un ejemplo de cómo configurar la biblioteca de mallas.

Como pueden ver, esta escena tiene un nodo Spatial como raíz, y un número de hijos del nodo MeshInstance.
Si no necesitas nada de física en tu escena, entonces estás acabado. Sin embargo, en la mayoría de los casos querrás asignar cuerpos de colisión a las mallas.
Colisiones¶
Puedes asignar manualmente un StaticBody y CollisionShape a cada malla. Alternativamente, puedes usar el menú "Malla" para crear automáticamente el cuerpo de colisión basado en los datos de la malla.

Tengan en cuenta que un cuerpo de colisión "Convexo" funcionará mejor para las mallas simples. Para formas más complejas, seleccione "Crear cuerpo estático Trimalla". Una vez que cada malla tenga asignado un cuerpo físico y una forma de colisión, su biblioteca de mallas estará lista para ser utilizada.

Materiales¶
Sólo se utilizan los materiales del interior de las mallas para generar la biblioteca de mallas. Los materiales establecidos en el nodo serán ignorados.
Exportación de MeshLibrary¶
Para exportar la biblioteca, haz clic en Escena -> Convertir a.. -> MeshLibrary..., y guárdala como un recurso.

Puedes encontrar una MeshLibrary ya exportada en el proyecto llamado "MeshLibrary.tres".
Usando GridMap¶
Crea una nueva escena y añade un nodo GridMap. Añade la librería de mallas arrastrando el archivo de recursos desde el panel del Sistema de Archivos y soltándolo en la propiedad "Theme" en el Inspector.

La propiedad "Celda/Tamaño" debe ser ajustada al tamaño de sus mallas. Puedes dejarla en el valor por defecto para la demostración. Poner la propiedad "Centrar Y" en "Apagado".
Ahora puedes empezar a diseñar el nivel eligiendo un tile de la paleta y colocándolo con un clic izquierdo en la ventana del editor. Para eliminar un tile, mantén pulsado Shift y usa el botón derecho.
Haga clic en el menú "GridMap" para ver las opciones y los atajos. Por ejemplo, presionando S gira una baldosa alrededor del eje y.

Manteniendo pulsado Mayúscula y arrastrando con el botón izquierdo del ratón se dibujará un cuadro de selección. Puede duplicar o borrar el área seleccionada usando las respectivas opciones de menú.

En el menú, también puede cambiar el eje sobre el que está dibujando, así como desplazar el plano de dibujo más arriba o más abajo en su eje.

Usando Gridmap en código¶
Ver GridMap para detalles sobre los métodos del nodo y las variables de miembros.