class

Godot::BoundSignal

Inherits Reference < Object

Represents a signal bound to a specific Godot object instance. Enables first-class signal handling, inspection, connection, emission, and non-blocking await.

Examples:

await(enemy.died)
await(enemy.died, timeout_sec: 2.0)
enemy.died.await
enemy.health_changed.connect { |cur, max| puts "Health: #{cur}/#{max}" }

Constructors

new(target : Godot::Object, name : String)
Source

Instance methods

alive?

Returns true if the bound object is still alive in ObjectDB

Source
await(timeout_sec : Float64 | Nil = nil) : Array(Variant)

Cooperatively awaits this signal without blocking the engine main loop. Returns the emitted arguments as an Array(Variant).

Source
await(timeout_sec : Number) : Array(Variant)

Cooperatively awaits this signal with timeout in seconds

Source
connect(flags : ConnectFlags = ConnectFlags::None, callback : Proc(Array(Variant), Void) | Nil = nil) : SignalSubscription

Connects a callback proc to this signal

Source
connect(flags : ConnectFlags = ConnectFlags::None, &block : Array(Variant) -> Void) : SignalSubscription

Connects a callback block to this signal

Source
connect(listener_target : Godot::Object, method_name : Symbol, flags : ConnectFlags = ConnectFlags::None) : SignalSubscription

Connects this signal to a method call on a target object by symbol name

Source
connect_one_shot

Backwards-compatibility helper redirecting to ConnectFlags::OneShot

Source
disconnect

Disconnects all active subscriptions for this signal on the target

Source
emit(*args) : Void

Emits this signal on the target object

Source
name
Source
target
Source
target_id

Returns the target's 64-bit instance ID (or Crystal object_id for unparented Crystal nodes)

Source
to_s(io : IO) : Void

Appends a short String representation of this object which includes its class name and its object address.

class Person
  def initialize(@name : String, @age : Int32)
  end
end

Person.new("John", 32).to_s # => #<Person:0x10a199f20>
Source