djiamnot / gdosc

OSC module for Godot game engine - it is now discontinued in favor of https://gitlab.com/frankiezafe/gdosc
Other
16 stars 1 forks source link

OSCreceiver starts UPD listener already when project is loaded if Autostart is enabled #15

Open SpotlightKid opened 6 years ago

SpotlightKid commented 6 years ago

When the Autostart property of OSCreceiver is enabled, it already starts an UDP listener when the project is loaded into the editor. This can be seen by the messages printed to the console at project loading time:

OSCreceiver::_notification, starting reception OSCreceiver::start on port 9000 OSCReceiver socket thread started

When the project is run, it tries to start another UDP listener and fails, because the port is already in use:

OSCreceiver::_notification, starting reception OSCreceiver::start: unable to bind udp socket

As a consequence OSC message reception by the scene does not work.

The UDP listener should only be started when the scene containing the OSCreceiver node starts, as the readme claims.

Workaround: disable Autostart and add start() to _ready:

extends OSCreceiver

func _ready():
    start()

This is on Godot compiled from current Git repo (commit c0137db76). I tested both the master and the develop branch of gdosc and they both exhibit the same problem.

djiamnot commented 6 years ago

The current develop branch (commit 5c0738894d6dc08dd945ce184ff63392fd1d2294) should fix this behavior. I will keep this issue open because there is still a need for the UDP listener to be functional when tool mode, is being used. At this point we cannot use OSCreceiver in _tool_mode.

SpotlightKid commented 6 years ago

I can confirm that the UDP listener no longer starts on project load.