【 Godot 4 学习笔记】bind

在 Godot 4 中,bind 是一个极其好用的功能,它允许你在连接信号或传递函数时,提前“固化”(绑定)一部分参数

简单来说,当信号触发时,Godot 会自动传入它自带的参数(比如按钮点击事件),而 bind 可以让你在这些自带参数的后面,强行塞入你自己想要传递的额外数据。

🎯 核心作用

假设你有一个通用的处理函数,但需要区分是哪个具体的物品被点击了。使用 bind,你就可以在连接信号时,把物品的 ID、名字等数据直接打包传进去。

💻 基础语法与实战示例

在 Godot 4 中,推荐直接使用 Signal.connect(Callable.bind(...)) 的写法。

假设我们有一排背包格子,点击任意一个格子,都需要知道是“第几个”格子:

extends Control

func _ready():
    # 假设有3个格子按钮
    for i in range(3):
        var button = Button.new()
        button.text = "格子 " + str(i)
        add_child(button)
        
        # 核心用法:使用 bind 把当前的索引 i 绑定到信号上
        # 注意:bind 的参数会排在信号自带参数的【后面】
        button.pressed.connect(_on_slot_pressed.bind(i))

# 信号回调函数
# event: 如果有的话是信号自带的参数(pressed信号没有自带参数)
# slot_index: 这就是我们通过 bind 绑定的额外参数!
func _on_slot_pressed(slot_index: int):
    print("你点击了第 ", slot_index,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值