| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <class name="Callable" version="4.0">
- <brief_description>
- An object representing a method in a certain object that can be called.
- </brief_description>
- <description>
- [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]
- </description>
- <tutorials>
- </tutorials>
- <constructors>
- <constructor name="Callable">
- <return type="Callable" />
- <description>
- Constructs a null [Callable] with no object nor method bound.
- </description>
- </constructor>
- <constructor name="Callable">
- <return type="Callable" />
- <argument index="0" name="from" type="Callable" />
- <description>
- Constructs a [Callable] as a copy of the given [Callable].
- </description>
- </constructor>
- <constructor name="Callable">
- <return type="Callable" />
- <argument index="0" name="object" type="Object" />
- <argument index="1" name="method" type="StringName" />
- <description>
- Creates a new [Callable] for the method called [code]method[/code] in the specified [code]object[/code].
- </description>
- </constructor>
- </constructors>
- <methods>
- <method name="bind" qualifiers="vararg const">
- <return type="Callable" />
- <description>
- Returns a copy of this [Callable] with the arguments bound. Bound arguments are passed after the arguments supplied by [method call].
- </description>
- </method>
- <method name="call" qualifiers="vararg const">
- <return type="Variant" />
- <description>
- Calls the method represented by this [Callable]. Arguments can be passed and should match the method's signature.
- </description>
- </method>
- <method name="call_deferred" qualifiers="vararg const">
- <return type="void" />
- <description>
- 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.
- </description>
- </method>
- <method name="get_method" qualifiers="const">
- <return type="StringName" />
- <description>
- Returns the name of the method represented by this [Callable].
- </description>
- </method>
- <method name="get_object" qualifiers="const">
- <return type="Object" />
- <description>
- Returns the object on which this [Callable] is called.
- </description>
- </method>
- <method name="get_object_id" qualifiers="const">
- <return type="int" />
- <description>
- Returns the ID of this [Callable]'s object (see [method Object.get_instance_id]).
- </description>
- </method>
- <method name="hash" qualifiers="const">
- <return type="int" />
- <description>
- Returns the hash value of this [Callable]'s object.
- </description>
- </method>
- <method name="is_custom" qualifiers="const">
- <return type="bool" />
- <description>
- 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].
- </description>
- </method>
- <method name="is_null" qualifiers="const">
- <return type="bool" />
- <description>
- Returns [code]true[/code] if this [Callable] has no target to call the method on.
- </description>
- </method>
- <method name="is_standard" qualifiers="const">
- <return type="bool" />
- <description>
- Returns [code]true[/code] if this [Callable] is a standard callable, referencing an object and a method using a [StringName].
- </description>
- </method>
- <method name="is_valid" qualifiers="const">
- <return type="bool" />
- <description>
- Returns [code]true[/code] if the object exists and has a valid function assigned, or is a custom callable.
- </description>
- </method>
- <method name="rpc" qualifiers="vararg const">
- <return type="void" />
- <description>
- 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.
- </description>
- </method>
- <method name="rpc_id" qualifiers="vararg const">
- <return type="void" />
- <argument index="0" name="peer_id" type="int" />
- <description>
- 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.
- </description>
- </method>
- <method name="unbind" qualifiers="const">
- <return type="Callable" />
- <argument index="0" name="argcount" type="int" />
- <description>
- 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.
- </description>
- </method>
- </methods>
- <operators>
- <operator name="operator !=">
- <return type="bool" />
- <description>
- </description>
- </operator>
- <operator name="operator !=">
- <return type="bool" />
- <argument index="0" name="right" type="Callable" />
- <description>
- Returns [code]true[/code] if both [Callable]s invoke different targets.
- </description>
- </operator>
- <operator name="operator ==">
- <return type="bool" />
- <description>
- </description>
- </operator>
- <operator name="operator ==">
- <return type="bool" />
- <argument index="0" name="right" type="Callable" />
- <description>
- Returns [code]true[/code] if both [Callable]s invoke the same custom target.
- </description>
- </operator>
- </operators>
- </class>
|