You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 13:52:03