An object representing a method in a certain object that can be called. [Callable] is a first class object which can be held in variables and passed to functions. It represents a given method in an [Object], and is typically used for signal callbacks. [b]Example:[/b] [codeblocks] [gdscript] func print_args(arg1, arg2, arg3 = ""): prints(arg1, arg2, arg3) func test(): var callable = Callable(self, "print_args") callable.call("hello", "world") # Prints "hello world ". callable.call(Vector2.UP, 42, callable) # Prints "(0, -1) 42 Node(Node.gd)::print_args". callable.call("invalid") # Invalid call, should have at least 2 arguments. [/gdscript] [csharp] public void PrintArgs(object arg1, object arg2, object arg3 = null) { GD.PrintS(arg1, arg2, arg3); } public void Test() { Callable callable = new Callable(this, nameof(PrintArgs)); callable.Call("hello", "world"); // Prints "hello world null". callable.Call(Vector2.Up, 42, callable); // Prints "(0, -1) 42 Node(Node.cs)::PrintArgs". callable.Call("invalid"); // Invalid call, should have at least 2 arguments. } [/csharp] [/codeblocks] Constructs a null [Callable] with no object nor method bound. Constructs a [Callable] as a copy of the given [Callable]. Creates a new [Callable] for the method called [param method] in the specified [param object]. Returns a copy of this [Callable] with the arguments bound. Bound arguments are passed after the arguments supplied by [method call]. Calls the method represented by this [Callable]. Arguments can be passed and should match the method's signature. Calls the method represented by this [Callable] in deferred mode, i.e. during the idle frame. Arguments can be passed and should match the method's signature. Returns the name of the method represented by this [Callable]. Returns the object on which this [Callable] is called. Returns the ID of this [Callable]'s object (see [method Object.get_instance_id]). Returns the 32-bit hash value of this [Callable]'s object. [b]Note:[/b] [Callable]s with equal content will always produce identical hash values. However, the reverse is not true. Returning identical hash values does [i]not[/i] imply the callables are equal, because different callables can have identical hash values due to hash collisions. The engine uses a 32-bit hash algorithm for [method hash]. Returns [code]true[/code] if this [Callable] is a custom callable whose behavior differs based on implementation details. Custom callables are used in the engine for various reasons. If [code]true[/code], you can't use [method get_method]. Returns [code]true[/code] if this [Callable] has no target to call the method on. Returns [code]true[/code] if this [Callable] is a standard callable, referencing an object and a method using a [StringName]. Returns [code]true[/code] if the object exists and has a valid function assigned, or is a custom callable. Perform an RPC (Remote Procedure Call). This is used for multiplayer and is normally not available unless the function being called has been marked as [i]RPC[/i]. Calling it on unsupported functions will result in an error. Perform an RPC (Remote Procedure Call) on a specific peer ID (see multiplayer documentation for reference). This is used for multiplayer and is normally not available unless the function being called has been marked as [i]RPC[/i]. Calling it on unsupported functions will result in an error. Returns a copy of this [Callable] with the arguments unbound. Calling the returned [Callable] will call the method without the extra arguments that are supplied in the [Callable] on which you are calling this method. Returns [code]true[/code] if both [Callable]s invoke different targets. Returns [code]true[/code] if both [Callable]s invoke the same custom target.