Состояние 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
.
Есть ли способ сохранить «дополнительные элементы» для каждой плитки?