class_funcref.rst 5.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  2. .. DO NOT EDIT THIS FILE, but the doc/base/classes.xml source instead.
  3. .. _class_FuncRef:
  4. FuncRef
  5. =======
  6. **Inherits:** :ref:`Reference<class_reference>` **<** :ref:`Object<class_object>`
  7. **Category:** Core
  8. Brief Description
  9. -----------------
  10. Reference to a function in an object.
  11. Member Functions
  12. ----------------
  13. +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  14. | void | :ref:`call_func<class_FuncRef_call_func>` **(** :ref:`Variant<class_variant>` arg0=NULL, :ref:`Variant<class_variant>` arg1=NULL, :ref:`Variant<class_variant>` arg2=NULL, :ref:`Variant<class_variant>` arg3=NULL, :ref:`Variant<class_variant>` arg4=NULL, :ref:`Variant<class_variant>` arg5=NULL, :ref:`Variant<class_variant>` arg6=NULL, :ref:`Variant<class_variant>` arg7=NULL, :ref:`Variant<class_variant>` arg8=NULL, :ref:`Variant<class_variant>` arg9=NULL **)** |
  15. +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  16. | void | :ref:`set_function<class_FuncRef_set_function>` **(** :ref:`String<class_string>` name **)** |
  17. +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  18. | void | :ref:`set_instance<class_FuncRef_set_instance>` **(** :ref:`Object<class_object>` instance **)** |
  19. +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  20. Description
  21. -----------
  22. In GDScript, functions are not *first-class objects*. This means it is impossible to store them directly as variables, return them from another function, or pass them as arguments.
  23. However, by creating a :ref:`FuncRef<class_funcref>` using the :ref:`@GDScript.funcref<class_@GDScript_funcref>` function, a reference to a function in a given object can be created, passed around and called.
  24. Member Function Description
  25. ---------------------------
  26. .. _class_FuncRef_call_func:
  27. - void **call_func** **(** :ref:`Variant<class_variant>` arg0=NULL, :ref:`Variant<class_variant>` arg1=NULL, :ref:`Variant<class_variant>` arg2=NULL, :ref:`Variant<class_variant>` arg3=NULL, :ref:`Variant<class_variant>` arg4=NULL, :ref:`Variant<class_variant>` arg5=NULL, :ref:`Variant<class_variant>` arg6=NULL, :ref:`Variant<class_variant>` arg7=NULL, :ref:`Variant<class_variant>` arg8=NULL, :ref:`Variant<class_variant>` arg9=NULL **)**
  28. Call the referenced function with the given arguments. The argument count must correspond to the required number of arguments in the function. Returns the return value of the function call.
  29. .. _class_FuncRef_set_function:
  30. - void **set_function** **(** :ref:`String<class_string>` name **)**
  31. Set the name of the function to call on the object, without parentheses or any parameters.
  32. .. _class_FuncRef_set_instance:
  33. - void **set_instance** **(** :ref:`Object<class_object>` instance **)**
  34. Set the object on which to call the referenced function. This object must be of a type actually inheriting from :ref:`Object<class_object>`, not a built-in type such as :ref:`int<class_int>`, :ref:`Vector2<class_vector2>` or :ref:`Dictionary<class_dictionary>`.