2020-02-22 13:59:09 +00:00
<?xml version="1.0" encoding="UTF-8" ?>
<class name= "Callable" version= "4.0" >
<brief_description >
2020-03-03 18:21:21 +00:00
An object representing a method in a certain object that can be called.
2020-02-22 13:59:09 +00:00
</brief_description>
<description >
2020-03-03 18:21:21 +00:00
[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]
2020-09-12 15:06:13 +00:00
[codeblocks]
[gdscript]
2020-03-03 18:21:21 +00:00
var callable = Callable(self, "print_args")
func print_args(arg1, arg2, arg3 = ""):
prints(arg1, arg2, arg3)
2020-09-12 15:06:13 +00:00
2020-03-03 18:21:21 +00:00
func test():
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.
2020-09-12 15:06:13 +00:00
[/gdscript]
[csharp]
Callable callable = new Callable(this, "print_args");
public void PrintArgs(object arg1, object arg2, object arg3 = "")
{
GD.PrintS(arg1, arg2, arg3);
}
public void Test()
{
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.
}
[/csharp]
[/codeblocks]
2020-02-22 13:59:09 +00:00
</description>
<tutorials >
</tutorials>
<methods >
<method name= "Callable" >
<return type= "Callable" >
</return>
<argument index= "0" name= "object" type= "Object" >
</argument>
<argument index= "1" name= "method_name" type= "StringName" >
</argument>
<description >
2020-03-03 18:21:21 +00:00
Creates a new [Callable] for the method called [code]method_name[/code] in the specified [code]object[/code].
2020-02-22 13:59:09 +00:00
</description>
</method>
2020-10-12 08:57:54 +00:00
<method name= "bind" qualifiers= "vararg" >
2020-11-04 14:38:26 +00:00
<return type= "Callable" >
2020-10-12 08:57:54 +00:00
</return>
<description >
</description>
</method>
2020-02-22 13:59:09 +00:00
<method name= "call" qualifiers= "vararg" >
<return type= "Variant" >
</return>
<description >
2020-03-03 18:21:21 +00:00
Calls the method represented by this [Callable]. Arguments can be passed and should match the method's signature.
2020-02-22 13:59:09 +00:00
</description>
</method>
<method name= "call_deferred" qualifiers= "vararg" >
<return type= "void" >
</return>
<description >
2020-03-03 18:21:21 +00:00
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.
2020-02-22 13:59:09 +00:00
</description>
</method>
<method name= "get_method" >
<return type= "StringName" >
</return>
<description >
2020-03-03 18:21:21 +00:00
Returns the name of the method represented by this [Callable].
2020-02-22 13:59:09 +00:00
</description>
</method>
<method name= "get_object" >
<return type= "Object" >
</return>
<description >
2020-03-03 18:21:21 +00:00
Returns the object on which this [Callable] is called.
2020-02-22 13:59:09 +00:00
</description>
</method>
<method name= "get_object_id" >
<return type= "int" >
</return>
<description >
2020-03-03 18:21:21 +00:00
Returns the ID of this [Callable]'s object (see [method Object.get_instance_id]).
2020-02-22 13:59:09 +00:00
</description>
</method>
<method name= "hash" >
<return type= "int" >
</return>
<description >
</description>
</method>
<method name= "is_custom" >
<return type= "bool" >
</return>
<description >
</description>
</method>
<method name= "is_null" >
<return type= "bool" >
</return>
<description >
</description>
</method>
<method name= "is_standard" >
<return type= "bool" >
</return>
<description >
</description>
</method>
2020-10-12 08:57:54 +00:00
<method name= "unbind" >
<return type= "Callable" >
</return>
<argument index= "0" name= "argcount" type= "int" >
</argument>
<description >
</description>
</method>
2020-02-22 13:59:09 +00:00
</methods>
<constants >
</constants>
</class>