1

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

在动态连接和发出信号时,我总是弄错信号的名称(例如,实际上是“create_server”时的“start_server”)。最重要的是,信号无处不在。我使用的其他消息传递模式通常为侦听器提供一个通用的发布者来订阅,从而使侦听和调试通信变得容易。在 Godot 中,一切都直接连接到其他一切。他们上场景树,下树,再到兄弟姐妹。正因为如此,一旦游戏变得非常大,我发现跟踪正在发生的事情非常令人沮丧。

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

4

1 回答 1

2

我不确定这是否是“最佳实践”,但您可以为您的项目制作一个包含所有信号名称常量的全局 gd 文件。如果您清楚地记得信号的前缀,那么让它为您自动完成信号名称可能会更容易。

例如

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

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

链接到设置global.gd 脚本

于 2019-01-11T21:01:43.670 回答