快速开始
安装
从预编译版本安装(推荐)
- 从 Releases 页面下载适合你平台的预编译版本
- 解压到你的 Godot 项目的
bin/目录下 - 在项目设置中启用插件
验证安装
创建一个简单的测试脚本来验证安装:
gdscript
# Test.gd
extends Node
func _ready():
# 检查 SignalBus 是否可用
var bus = SignalBus.get_singleton()
if bus:
print("GDSignalBus 安装成功!")
# 测试基本功能
var subscription_id = bus.subscribe("test_signal", _on_test_signal)
bus.emit("test_signal", ["Hello from SignalBus!"])
else:
print("GDSignalBus 未正确安装")
func _on_test_signal(message):
print("收到信号: ", message)基础使用
获取 SignalBus 实例
gdscript
# 获取单例
var bus = SignalBus.get_singleton()发送信号
gdscript
# 发送简单信号
bus.emit("player_died", [])
# 发送带参数的信号
bus.emit("item_collected", ["coin", 100])
# 发送到特定通道
bus.emit_on_channel("ui", "button_clicked", ["start_button", "main"])监听信号
gdscript
# 在 _ready 或适当的地方订阅信号
func _ready():
bus.subscribe("player_died", _on_player_died)
bus.subscribe("item_collected", _on_item_collected)
bus.subscribe_on_channel("ui", "button_clicked", _on_ui_event)
# 信号处理函数
func _on_player_died():
print("玩家死亡")
get_tree().reload_current_scene()
func _on_item_collected(args):
var item_type = args[0]
var value = args[1]
print("收集物品: ", item_type, " 价值: ", value)
score += value
func _on_ui_event(args):
var source = args[0]
var context = args[1]
print("按钮点击: ", source, " 在 ", context)断开连接
gdscript
# 保存订阅ID以便后续取消
var subscription_id = bus.subscribe("player_died", _on_player_died)
# 断开特定信号
bus.unsubscribe(subscription_id)
# 在节点被移除时自动清理(推荐)
func _exit_tree():
bus.unsubscribe_all(self)调试功能
gdscript
# 启用调试模式
bus.set_debug_enabled(true)
# 获取系统信息
print("所有信号: ", bus.get_signal_list())
print("所有频道: ", bus.get_channel_list())
print("订阅者数量: ", bus.get_subscriber_count("player_died"))