Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | zep |
I have some a method as such;
public static void ConnectSignalSingleParameter(Node sourceNode, string signalName, Delegate handler)
{
CustomConnectDelegates[signalName] = handler; //
sourceNode.Connect(signalName, Instance, nameof(HandleSignal), new Array(signalName));
}
private void HandleSignal(object parameter, string signalName)
{
if (CustomConnectDelegates.TryGetValue(signalName, out var del))
del.DynamicInvoke(parameter);
}
For reasons, I need this in order to connect some simple signals like OptionButton.item_selected to arbitrary handlers. However, I only get Error calling method from signal 'item_selected': 'Node(GameRoot.cs)::HandleSignal': Method not found.
whenever the signal is emitted.
That method is called like so: GameRoot.ConnectSignalSingleParameter(optionButton, "item_selected", OptionHandler);
Why is this? Is there another way I can achieve this?