使用网格图

介绍

Gridmaps 是创建三维游戏级别的工具,类似于 TileMap 在二维中工作。从一个预定义的三维网格集合开始(A MeshLibrary )它可以放在网格上,就好像你在用无限量的乐高积木构建一个级别一样。

碰撞和导航也可以添加到网格中,就像处理tilemap的分片一样。

示例项目

要了解网格图的工作原理,请从下载示例项目开始: gridmap_demo.zip .

解压此项目并使用“导入”按钮将其添加到项目经理。

创建网格库

首先,你需要 MeshLibrary ,它是可以在网格图中使用的单个网格的集合。打开“mesh library_source.tscn”场景,查看如何设置网格库的示例。

../../_images/gridmap_meshlibrary1.png

如你所见,这个场景有一个 空间 节点作为其根,以及 MeshInstance 节点子级。

如果你在你的场景中不需要任何物理,那么你就完成了。但是,在大多数情况下,您需要将碰撞体指定给网格。

碰撞

您可以手动分配 StaticBodyCollisionShape 每个网格。或者,可以使用“网格”菜单根据网格数据自动创建碰撞体。

../../_images/gridmap_create_body.png

请注意,“凸”碰撞体对于简单网格效果更好。对于更复杂的形状,请选择“创建Trimesh静态实体”。一旦每个网格都分配了物理体和碰撞形状,您的网格库就可以使用了。

../../_images/gridmap_mesh_scene.png

材料

生成网格库时,仅使用网格内的材质。节点上设置的材质将被忽略。

导出网格库

要导出库,请单击场景->转换为..->meshlibrary..,并将其保存为资源。

../../_images/gridmap_export.png

您可以在名为“meshlibrary.tres”的项目中找到已导出的meshlibrary。

使用网格图

创建新场景并添加网格图节点。添加网格库,方法是从文件系统Dock中拖动资源文件并将其放到Inspector的“Theme”属性中。

../../_images/gridmap_main.png

“cell/size”属性应设置为网格的大小。您可以将其保留为演示的默认值。将“Center Y”属性设置为“off”。

现在,您可以开始设计级别,方法是从调色板中选择一个图块,然后在编辑器窗口中单击鼠标左键将其放置。要删除磁贴,请使用Shift+右键单击。

单击“网格地图”菜单查看选项和快捷方式。例如,按“S”可围绕Y轴旋转平铺。

../../_images/gridmap_menu.png

按住<shift>并用鼠标左键拖动将绘制一个选择框。可以使用相应的菜单选项复制或清除所选区域。

../../_images/gridmap_select.png

在菜单中,您还可以更改正在绘制的轴,以及将绘图平面在其轴上上移或下移。

../../_images/gridmap_shift_axis.png

在代码中使用网格图

GridMap 有关节点方法和成员变量的详细信息。