Godot 4.2 conectando una señal de un hijo instanciado al padre usando C#
¿Cómo se conecta una señal que se emite desde una escena secundaria al nodo principal?
En mi código, el delegado se crea en un script de una escena instanciada.
[Signal]
public delegate void OnKnobChangeEventHandler(float val);
Entonces se emite la señal.
EmitSignal(nameof(OnKnobChangeEventHandler), value); //value is a float
Intentando conectar esta señal. a los errores principales se generan en el segundo y tercer parámetro del método Connect
private float _heading = 30;
private float _course = 30;
private Label _lbl_heading;
private Label _lbl_course;
public override void _Ready()
{
_lbl_heading = GetNode<Label>("lbl_heading");
_lbl_course = GetNode<Label>("lbl_course");
_courseKnob = GetNode<Node>("Bezel/KnobHeading");
_headingKnob = GetNode<Node>("Bezel/KnobCourse");
_courseKnob.Connect("OnKnobChange", this, OnCourseKnobSignalReceived);
}
private void OnCourseKnobSignalReceived(float value)
{
_course += value;
}
Aceptado
Sintaxis que funcionó:
_courseKnob.Connect("OnKnobChange", new Callable(this, MethodName.OnCourseKnobSignalReceived));
también: Cuando se emite la señal, se debe eliminar el sufijo EventHandler
La solución ayudada por este sitio web: Documentación Godot