Godot中如何通过代码禁用TileMap的Door1图层?
解决Godot中TileMap图层禁用问题
首先注意你的函数名存在拼写错误:_on_activate_buton_body_entered里的buton应改为button,否则信号无法正确触发。
要禁用TileMap中的Door1图层,正确做法是使用TileMap内置的set_layer_enabled方法,具体有两种实现方式:
方法一:通过图层名称获取索引后禁用
先通过图层名称拿到对应索引,再调用方法关闭图层:
extends TileMap signal button1_1 # 修正函数名拼写错误 func _on_activate_button_body_entered(_body): button1_1.emit() # 获取Door1图层的索引 var door_layer_index = get_layer_index("Door1") # 禁用该图层 set_layer_enabled(door_layer_index, false)
方法二:直接使用图层索引(更高效)
如果你已明确Door1在TileMap图层列表中的索引(比如是2),可以直接传入索引:
extends TileMap signal button1_1 func _on_activate_button_body_entered(_body): button1_1.emit() # 假设Door1的图层索引是2,直接禁用 set_layer_enabled(2, false)
另外需确保已将按钮的body_entered信号正确连接到该函数,否则函数不会触发。
内容的提问来源于stack exchange,提问作者Boostgb
相关产品推荐
相关产品推荐

