TileMap中具有地形更新功能的api有:set_cells_terrain_connect和set_cells_terrain_path。
这边用的set_cells_terrain_connect来实现放置方块、删除方块的效果。
文档:
image.png
放置方块没问题,自动更新地形。删除方块怎么办呢?答案是:同样用set_cells_terrain_connect。
首先想到的是:放置空气地形就相当于删除,文档中提到了“相同地形连接...更新相邻图块”,这里更新相邻图块需要地形集terrain_set相同,保证在一个地形集下,地形terrain设为-1的话,就能实现删除方块的同时,更新周围的方块。

(你要专门弄一个空气地形也是可以的,只要地形集相同)
@onready var tile_map: TileMap = $TileMap
# ...
tile_map.set_cells_terrain_connect(terrain_layer, [tile_local_position], terrain_set, -1)

想名字最麻烦了
35 声望0 粉丝

引用和评论

0 条评论