如何将“额外元素”添加到MeshLibrary

时间:2019-01-24 14:10:40

标签: godot

GridMap docs状态:

  

GridMaps使用一个MeshLibrary,其中包含一个图块列表:包含材质的网格,可选的碰撞和多余的元素。

如何获取和设置这些“额外元素”?

我想为move_speed的每个图块分配一个MeshLibrary属性,并在运行时从GridMap访问它。

我尝试将以下脚本添加到Mesh场景中的每个MeshLibrary

extends MeshInstance

export var move_speed = 0

在编辑器中,我为每个子网格设置了move_speed,然后使用meshlib.tres将场景导出到Scene > Convert To > Mesh Library。在另一个场景中,我使用导出的网格库作为GridMap创建了theme

在运行时,我像这样查找图块数据:

var tile_idx = map.get_cell_item(selected_coord.x, selected_coord.y, selected_coord.z)
if tile_idx != GridMap.INVALID_CELL_ITEM:
    var tile = map.theme.get_item_mesh(tile_idx)

但是,图块对象的类型为ArrayMesh。我不再有权访问附加的脚本。此外,ArrayMesh不会扩展Node,这意味着我无法列出我可能在MeshLibrary场景中添加的孩子。

有没有办法为每个图块存储“额外元素”?

0 个答案:

没有答案