Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
使用圖塊地圖¶
前言¶
Gridmaps 是一種用於建立3D遊戲關卡的工具, 方式類似於2D中使用 TileMap . 使用一個定義好的可以放在一個網格中的 3D mesh (a MeshLibrary) (譯注,grid和mesh都譯作網格, 這裡為了清晰,mesh直接使用英文,grid則譯作網格)物件集合搭建關卡, 就像您使用無限多數量的樂高積木搭建世界一樣.
就像使用tilemap的tile一樣, 碰撞和導覽也可以新增到網格中.
範例專案¶
除了這份說明文件,你可能也會想看看 Godot Demo 專案 。
解壓縮此專案並使用“匯入”按鈕將其新增到專案管理器。
建立 MeshLibrary¶
首先,您需要一個 MeshLibrary,它是可以在網格地圖中使用的 Mesh 的集合。打開“MeshLibrary_Source.tscn”場景以查看如何設定網格庫的範例。
可以看到, 這個場景有一個 class_Spatial 節點作為它的根, 以及一些 class_MeshInstance 子節點.
如果您的場景中不需要任何物理, 那麼到這裡就完成了. 但是, 在大多數情況下, 您還需要給網格指定碰撞體.
碰撞¶
您可以手動為每個 Mesh 指定 class_StaticBody 和 class_CollisionShape。或者,您可以使用“網格”功能表根據 Mesh 資料自動建立碰撞體。
請注意,“凸”(Convex)碰撞體對於簡單 Mesh 效果更好。對於更複雜的形狀,請選擇“建立三角網格靜態體”。一旦每個網格都分配了物理主體和碰撞形狀,就可以使用網格庫了。
材質¶
在生成網格庫時, 只使用網格內的材質. 節點上設定的材質將被忽略.
匯出 MeshLibrary¶
要匯出庫,點擊場景 -> 轉換為.. -> 網格庫...,並將其保存為資源。
可以在專案中找到已匯出的名為“MeshLibrary.tres”的 MeshLibrary。
使用 GridMap¶
建立一個新場景並新增一個 GridMap 節點。通過從檔案系統面板拖動資源檔並將其放入屬性面板中的“Theme”(主題)屬性中來新增網格庫。
“Cell/Size”屬性應設定為網格的大小。在本範例中您可以使用預設值。將“Center Y”屬性設定為“未啟用”。
現在你可以開始設計關卡了, 從調色板中選擇一個圖塊, 然後在編輯器視窗中用左鍵按一下它. 要刪除一個圖塊, 按住 Shift 並使用按右鍵.
使用「GridMap」功能表旁的箭頭變更您正在處理的樓層。
按一下“GridMap”功能表可以查看選項和快捷鍵。例如,按下 S 繞 Y 軸旋轉圖塊。
按住 Shift 並使用滑鼠左鍵拖動將繪製一個選擇框. 您可以使用相應的功能表選項複製或清除所選區域.
在功能表中, 您還可以更改正在繪製的軸, 並將繪圖平面在其軸上移動得更高或更低.
在程式碼中使用 GridMap¶
有關節點方法和成員變數的詳細資訊, 請參閱 GridMap.