Годо - какой-нибудь способ отследить сигналы? - PullRequest
0 голосов
/ 11 января 2019

Сигналы являются неотъемлемой частью сценариев Годо, но из-за них я брожу по мелассе.

Я постоянно ошибаюсь в именах сигналов при их динамическом подключении и излучении (например, "start_server", когда это был действительно "create_server") . Вдобавок ко всему, сигналы вроде бы повсюду. Другие шаблоны обмена сообщениями, которые я использовал, обычно обеспечивают слушателей общим подписчиком, что облегчает прослушивание и отладку сообщений. В Godot все соединяется напрямую со всем остальным. Они идут вверх по дереву сцены, вниз по дереву, и братьям и сестрам. Из-за этого я нахожу очень расстраивающим , чтобы отслеживать, что происходит, когда игра становится даже отдаленно большой.

Я люблю все об этом двигателе, но это сводит с ума. Есть ли способ отследить эти сигналы, чтобы я мог уменьшить эти небольшие, но очень частые и трудные для обнаружения ошибки сигнала?

1 Ответ

0 голосов
/ 12 января 2019

Я не уверен, что это «лучшая практика», но вы можете создать глобальный 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 script .

...