Godot - 任何跟踪信号的方法?

Godot - any way to trace signals?

信号是 Godot 脚本的基本特征,但我正因为它们而苦苦挣扎。

在动态连接和发射信号时,我总是弄错信号名称 (例如 "start_server",但实际上是 "create_server")。最重要的是,信号无处不在。我使用的其他消息传递模式通常会为侦听器提供一个公共发布者以供订阅,从而使侦听和调试通信变得容易。在 Godot 中,一切都直接连接到其他一切。他们沿着场景树往上走,沿着树往下走,然后到达兄弟姐妹。因此,我发现 非常令人沮丧 跟踪一旦游戏变得非常大的地方发生了什么。

我喜欢这个引擎的一切,但这太让人抓狂了。 有没有办法跟踪这些信号,以便我可以减轻这些小但非常频繁且难以发现的信号错误?

我不确定这是否是 "best practice",但您可以为您的项目创建一个包含所有信号名称常量的全局 gd 文件。如果您清楚地记得信号的前缀,让它自动为您完成信号名称可能会更容易。

例如

signal_globals.gd const SIG_SERVER_CREATE = "create_server" const SIG_HABADASHER = "habadasher_crasher" ... something.connect(SIG_SERVER_CREATE, this, "_create_server_now")

虽然,理论上代码完成应该已经能够自己完成信号名称...

Link 设置 global.gd script.