Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Signal¶
A built-in type representing a signal of an Object.
Description¶
Signal is a built-in Variant type that represents a signal of an Object instance. Like all Variant types, it can be stored in variables and passed to functions. Signals allow all connected Callables (and by extension their respective objects) to listen and react to events, without directly referencing one another. This keeps the code flexible and easier to manage.
In GDScript, signals can be declared with the signal
keyword. In C#, you may use the [Signal]
attribute on a delegate.
signal attacked
# Additional arguments may be declared.
# These arguments must be passed when the signal is emitted.
signal item_dropped(item_name, amount)
[Signal]
delegate void AttackedEventHandler();
// Additional arguments may be declared.
// These arguments must be passed when the signal is emitted.
[Signal]
delegate void ItemDroppedEventHandler(string itemName, int amount);
Note
There are notable differences when using this API with C#. See C# API differences to GDScript for more information.
Tutorials¶
Constructors¶
Signal ( ) |
|
Signal ( Object object, StringName signal ) |
Methods¶
void |
disconnect ( Callable callable ) |
void |
emit ( ... ) vararg const |
get_connections ( ) const |
|
get_name ( ) const |
|
get_object ( ) const |
|
get_object_id ( ) const |
|
is_connected ( Callable callable ) const |
|
is_null ( ) const |
Operators¶
operator != ( Signal right ) |
|
operator == ( Signal right ) |
Constructor Descriptions¶
Signal Signal ( )
Constructs an empty Signal with no object nor signal name bound.
Constructs a Signal as a copy of the given Signal.
Signal Signal ( Object object, StringName signal )
Creates a new Signal named signal
in the specified object
.
Method Descriptions¶
int connect ( Callable callable, int flags=0 )
Connects this signal to the specified callable
. Optional flags
can be also added to configure the connection's behavior (see ConnectFlags constants). You can provide additional arguments to the connected callable
by using Callable.bind.
A signal can only be connected once to the same Callable. If the signal is already connected, returns @GlobalScope.ERR_INVALID_PARAMETER and pushes an error message, unless the signal is connected with Object.CONNECT_REFERENCE_COUNTED. To prevent this, use is_connected first to check for existing connections.
for button in $Buttons.get_children():
button.pressed.connect(_on_pressed.bind(button))
func _on_pressed(button):
print(