class_object.rst 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  2. .. DO NOT EDIT THIS FILE, but the Object.xml source instead.
  3. .. The source is found in doc/classes or modules/<name>/doc_classes.
  4. .. _class_Object:
  5. Object
  6. ======
  7. **Inherited By:** :ref:`Physics2DServer<class_physics2dserver>`, :ref:`MainLoop<class_mainloop>`, :ref:`Input<class_input>`, :ref:`Node<class_node>`, :ref:`Geometry<class_geometry>`, :ref:`ARVRPositionalTracker<class_arvrpositionaltracker>`, :ref:`TreeItem<class_treeitem>`, :ref:`PhysicsDirectBodyState<class_physicsdirectbodystate>`, :ref:`ARVRServer<class_arvrserver>`, :ref:`PhysicsDirectSpaceState<class_physicsdirectspacestate>`, :ref:`Reference<class_reference>`, :ref:`Engine<class_engine>`, :ref:`Physics2DDirectSpaceState<class_physics2ddirectspacestate>`, :ref:`InputMap<class_inputmap>`, :ref:`UndoRedo<class_undoredo>`, :ref:`PhysicsServer<class_physicsserver>`, :ref:`ProjectSettings<class_projectsettings>`, :ref:`ResourceSaver<class_resourcesaver>`, :ref:`Performance<class_performance>`, :ref:`ResourceLoader<class_resourceloader>`, :ref:`JSON<class_json>`, :ref:`AudioServer<class_audioserver>`, :ref:`IP<class_ip>`, :ref:`ClassDB<class_classdb>`, :ref:`VisualServer<class_visualserver>`, :ref:`OS<class_os>`, :ref:`EditorSelection<class_editorselection>`, :ref:`Physics2DDirectBodyState<class_physics2ddirectbodystate>`, :ref:`TranslationServer<class_translationserver>`, :ref:`EditorFileSystemDirectory<class_editorfilesystemdirectory>`
  8. **Category:** Core
  9. Brief Description
  10. -----------------
  11. Base class for all non built-in types.
  12. Member Functions
  13. ----------------
  14. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  15. | void | :ref:`_get<class_Object__get>` **(** :ref:`String<class_string>` property **)** virtual |
  16. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  17. | :ref:`Array<class_array>` | :ref:`_get_property_list<class_Object__get_property_list>` **(** **)** virtual |
  18. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  19. | void | :ref:`_init<class_Object__init>` **(** **)** virtual |
  20. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  21. | void | :ref:`_notification<class_Object__notification>` **(** :ref:`int<class_int>` what **)** virtual |
  22. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  23. | :ref:`bool<class_bool>` | :ref:`_set<class_Object__set>` **(** :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)** virtual |
  24. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  25. | void | :ref:`add_user_signal<class_Object_add_user_signal>` **(** :ref:`String<class_string>` signal, :ref:`Array<class_array>` arguments=[ ] **)** |
  26. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  27. | :ref:`Variant<class_variant>` | :ref:`call<class_Object_call>` **(** :ref:`String<class_string>` method **)** vararg |
  28. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  29. | :ref:`Variant<class_variant>` | :ref:`call_deferred<class_Object_call_deferred>` **(** :ref:`String<class_string>` method **)** vararg |
  30. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  31. | :ref:`Variant<class_variant>` | :ref:`callv<class_Object_callv>` **(** :ref:`String<class_string>` method, :ref:`Array<class_array>` arg_array **)** |
  32. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  33. | :ref:`bool<class_bool>` | :ref:`can_translate_messages<class_Object_can_translate_messages>` **(** **)** const |
  34. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  35. | :ref:`int<class_int>` | :ref:`connect<class_Object_connect>` **(** :ref:`String<class_string>` signal, :ref:`Object<class_object>` target, :ref:`String<class_string>` method, :ref:`Array<class_array>` binds=[ ], :ref:`int<class_int>` flags=0 **)** |
  36. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  37. | void | :ref:`disconnect<class_Object_disconnect>` **(** :ref:`String<class_string>` signal, :ref:`Object<class_object>` target, :ref:`String<class_string>` method **)** |
  38. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | :ref:`Variant<class_variant>` | :ref:`emit_signal<class_Object_emit_signal>` **(** :ref:`String<class_string>` signal **)** vararg |
  40. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. | void | :ref:`free<class_Object_free>` **(** **)** |
  42. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  43. | :ref:`Variant<class_variant>` | :ref:`get<class_Object_get>` **(** :ref:`String<class_string>` property **)** const |
  44. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  45. | :ref:`String<class_string>` | :ref:`get_class<class_Object_get_class>` **(** **)** const |
  46. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  47. | :ref:`Array<class_array>` | :ref:`get_incoming_connections<class_Object_get_incoming_connections>` **(** **)** const |
  48. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  49. | :ref:`int<class_int>` | :ref:`get_instance_id<class_Object_get_instance_id>` **(** **)** const |
  50. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  51. | :ref:`Variant<class_variant>` | :ref:`get_meta<class_Object_get_meta>` **(** :ref:`String<class_string>` name **)** const |
  52. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  53. | :ref:`PoolStringArray<class_poolstringarray>` | :ref:`get_meta_list<class_Object_get_meta_list>` **(** **)** const |
  54. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  55. | :ref:`Array<class_array>` | :ref:`get_method_list<class_Object_get_method_list>` **(** **)** const |
  56. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  57. | :ref:`Array<class_array>` | :ref:`get_property_list<class_Object_get_property_list>` **(** **)** const |
  58. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  59. | :ref:`Reference<class_reference>` | :ref:`get_script<class_Object_get_script>` **(** **)** const |
  60. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  61. | :ref:`Array<class_array>` | :ref:`get_signal_connection_list<class_Object_get_signal_connection_list>` **(** :ref:`String<class_string>` signal **)** const |
  62. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  63. | :ref:`Array<class_array>` | :ref:`get_signal_list<class_Object_get_signal_list>` **(** **)** const |
  64. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  65. | :ref:`bool<class_bool>` | :ref:`has_meta<class_Object_has_meta>` **(** :ref:`String<class_string>` name **)** const |
  66. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  67. | :ref:`bool<class_bool>` | :ref:`has_method<class_Object_has_method>` **(** :ref:`String<class_string>` method **)** const |
  68. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  69. | :ref:`bool<class_bool>` | :ref:`has_user_signal<class_Object_has_user_signal>` **(** :ref:`String<class_string>` signal **)** const |
  70. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  71. | :ref:`bool<class_bool>` | :ref:`is_blocking_signals<class_Object_is_blocking_signals>` **(** **)** const |
  72. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  73. | :ref:`bool<class_bool>` | :ref:`is_class<class_Object_is_class>` **(** :ref:`String<class_string>` type **)** const |
  74. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  75. | :ref:`bool<class_bool>` | :ref:`is_connected<class_Object_is_connected>` **(** :ref:`String<class_string>` signal, :ref:`Object<class_object>` target, :ref:`String<class_string>` method **)** const |
  76. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  77. | :ref:`bool<class_bool>` | :ref:`is_queued_for_deletion<class_Object_is_queued_for_deletion>` **(** **)** const |
  78. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  79. | void | :ref:`notification<class_Object_notification>` **(** :ref:`int<class_int>` what, :ref:`bool<class_bool>` reversed=false **)** |
  80. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  81. | void | :ref:`property_list_changed_notify<class_Object_property_list_changed_notify>` **(** **)** |
  82. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  83. | void | :ref:`set<class_Object_set>` **(** :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)** |
  84. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  85. | void | :ref:`set_block_signals<class_Object_set_block_signals>` **(** :ref:`bool<class_bool>` enable **)** |
  86. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  87. | void | :ref:`set_message_translation<class_Object_set_message_translation>` **(** :ref:`bool<class_bool>` enable **)** |
  88. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  89. | void | :ref:`set_meta<class_Object_set_meta>` **(** :ref:`String<class_string>` name, :ref:`Variant<class_variant>` value **)** |
  90. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  91. | void | :ref:`set_script<class_Object_set_script>` **(** :ref:`Reference<class_reference>` script **)** |
  92. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  93. | :ref:`String<class_string>` | :ref:`tr<class_Object_tr>` **(** :ref:`String<class_string>` message **)** const |
  94. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  95. Signals
  96. -------
  97. - **script_changed** **(** **)**
  98. Numeric Constants
  99. -----------------
  100. - **NOTIFICATION_POSTINITIALIZE** = **0** --- Called right when the object is initialized. Not available in script.
  101. - **NOTIFICATION_PREDELETE** = **1** --- Called before the object is about to be deleted.
  102. - **CONNECT_DEFERRED** = **1** --- Connect a signal in deferred mode. This way, signal emissions are stored in a queue, then set on idle time.
  103. - **CONNECT_PERSIST** = **2** --- Persisting connections are saved when the object is serialized to file.
  104. - **CONNECT_ONESHOT** = **4** --- One shot connections disconnect themselves after emission.
  105. Description
  106. -----------
  107. Base class for all non built-in types. Everything not a built-in type starts the inheritance chain from this class.
  108. Objects do not manage memory, if inheriting from one the object will most likely have to be deleted manually (call the :ref:`free<class_Object_free>` function from the script or delete from C++).
  109. Some derivates add memory management, such as :ref:`Reference<class_reference>` (which keeps a reference count and deletes itself automatically when no longer referenced) and :ref:`Node<class_node>`, which deletes the children tree when deleted.
  110. Objects export properties, which are mainly useful for storage and editing, but not really so much in programming. Properties are exported in :ref:`_get_property_list<class_Object__get_property_list>` and handled in :ref:`_get<class_Object__get>` and :ref:`_set<class_Object__set>`. However, scripting languages and C++ have simpler means to export them.
  111. Objects also receive notifications (:ref:`_notification<class_Object__notification>`). Notifications are a simple way to notify the object about simple events, so they can all be handled together.
  112. Member Function Description
  113. ---------------------------
  114. .. _class_Object__get:
  115. - void **_get** **(** :ref:`String<class_string>` property **)** virtual
  116. Return a property, return null if the property does not exist.
  117. .. _class_Object__get_property_list:
  118. - :ref:`Array<class_array>` **_get_property_list** **(** **)** virtual
  119. Return the property list, array of dictionaries, dictionaries must contain: name:String, type:int (see TYPE\_\* enum in :ref:`@Global Scope<class_@global scope>`) and optionally: hint:int (see PROPERTY_HINT\_\* in :ref:`@Global Scope<class_@global scope>`), hint_string:String, usage:int (see PROPERTY_USAGE\_\* in :ref:`@Global Scope<class_@global scope>`).
  120. .. _class_Object__init:
  121. - void **_init** **(** **)** virtual
  122. .. _class_Object__notification:
  123. - void **_notification** **(** :ref:`int<class_int>` what **)** virtual
  124. Notification request, the notification id is received.
  125. .. _class_Object__set:
  126. - :ref:`bool<class_bool>` **_set** **(** :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)** virtual
  127. Set a property. Return true if the property was found.
  128. .. _class_Object_add_user_signal:
  129. - void **add_user_signal** **(** :ref:`String<class_string>` signal, :ref:`Array<class_array>` arguments=[ ] **)**
  130. Add a user signal (can be added anytime). Arguments are optional, but can be added as an array of dictionaries, each containing "name" and "type" (from :ref:`@Global Scope<class_@global scope>` TYPE\_\*).
  131. .. _class_Object_call:
  132. - :ref:`Variant<class_variant>` **call** **(** :ref:`String<class_string>` method **)** vararg
  133. .. _class_Object_call_deferred:
  134. - :ref:`Variant<class_variant>` **call_deferred** **(** :ref:`String<class_string>` method **)** vararg
  135. .. _class_Object_callv:
  136. - :ref:`Variant<class_variant>` **callv** **(** :ref:`String<class_string>` method, :ref:`Array<class_array>` arg_array **)**
  137. .. _class_Object_can_translate_messages:
  138. - :ref:`bool<class_bool>` **can_translate_messages** **(** **)** const
  139. Return true if this object can translate strings.
  140. .. _class_Object_connect:
  141. - :ref:`int<class_int>` **connect** **(** :ref:`String<class_string>` signal, :ref:`Object<class_object>` target, :ref:`String<class_string>` method, :ref:`Array<class_array>` binds=[ ], :ref:`int<class_int>` flags=0 **)**
  142. Connect a signal to a method at a target (member function). Binds are optional and are passed as extra arguments to the call. Flags specify optional deferred or one shot connections, see enum CONNECT\_\*. A signal can only be connected once to a method, and it will throw an error if already connected. If you want to avoid this, use :ref:`is_connected<class_Object_is_connected>` to check.
  143. .. _class_Object_disconnect:
  144. - void **disconnect** **(** :ref:`String<class_string>` signal, :ref:`Object<class_object>` target, :ref:`String<class_string>` method **)**
  145. Disconnect a signal from a method.
  146. .. _class_Object_emit_signal:
  147. - :ref:`Variant<class_variant>` **emit_signal** **(** :ref:`String<class_string>` signal **)** vararg
  148. .. _class_Object_free:
  149. - void **free** **(** **)**
  150. .. _class_Object_get:
  151. - :ref:`Variant<class_variant>` **get** **(** :ref:`String<class_string>` property **)** const
  152. Get a property from the object.
  153. .. _class_Object_get_class:
  154. - :ref:`String<class_string>` **get_class** **(** **)** const
  155. Return the class of the object as a string.
  156. .. _class_Object_get_incoming_connections:
  157. - :ref:`Array<class_array>` **get_incoming_connections** **(** **)** const
  158. Returns an :ref:`Array<class_array>` of dictionaries with informations about signals that are connected to this object.
  159. Inside each :ref:`Dictionary<class_dictionary>` there are 3 fields:
  160. - "source" is a reference to signal emitter.
  161. - "signal_name" is name of connected signal.
  162. - "method_name" is a name of method to which signal is connected.
  163. .. _class_Object_get_instance_id:
  164. - :ref:`int<class_int>` **get_instance_id** **(** **)** const
  165. Return the instance ID. All objects have a unique instance ID.
  166. .. _class_Object_get_meta:
  167. - :ref:`Variant<class_variant>` **get_meta** **(** :ref:`String<class_string>` name **)** const
  168. Return a metadata from the object.
  169. .. _class_Object_get_meta_list:
  170. - :ref:`PoolStringArray<class_poolstringarray>` **get_meta_list** **(** **)** const
  171. Return the list of metadata in the object.
  172. .. _class_Object_get_method_list:
  173. - :ref:`Array<class_array>` **get_method_list** **(** **)** const
  174. .. _class_Object_get_property_list:
  175. - :ref:`Array<class_array>` **get_property_list** **(** **)** const
  176. Return the list of properties as an array of dictionaries, dictionaries contain: name:String, type:int (see TYPE\_\* enum in :ref:`@Global Scope<class_@global scope>`) and optionally: hint:int (see PROPERTY_HINT\_\* in :ref:`@Global Scope<class_@global scope>`), hint_string:String, usage:int (see PROPERTY_USAGE\_\* in :ref:`@Global Scope<class_@global scope>`).
  177. .. _class_Object_get_script:
  178. - :ref:`Reference<class_reference>` **get_script** **(** **)** const
  179. Return the object script (or null if it doesn't have one).
  180. .. _class_Object_get_signal_connection_list:
  181. - :ref:`Array<class_array>` **get_signal_connection_list** **(** :ref:`String<class_string>` signal **)** const
  182. .. _class_Object_get_signal_list:
  183. - :ref:`Array<class_array>` **get_signal_list** **(** **)** const
  184. Return the list of signals as an array of dictionaries.
  185. .. _class_Object_has_meta:
  186. - :ref:`bool<class_bool>` **has_meta** **(** :ref:`String<class_string>` name **)** const
  187. Return true if a metadata is found with the requested name.
  188. .. _class_Object_has_method:
  189. - :ref:`bool<class_bool>` **has_method** **(** :ref:`String<class_string>` method **)** const
  190. .. _class_Object_has_user_signal:
  191. - :ref:`bool<class_bool>` **has_user_signal** **(** :ref:`String<class_string>` signal **)** const
  192. .. _class_Object_is_blocking_signals:
  193. - :ref:`bool<class_bool>` **is_blocking_signals** **(** **)** const
  194. Return true if signal emission blocking is enabled.
  195. .. _class_Object_is_class:
  196. - :ref:`bool<class_bool>` **is_class** **(** :ref:`String<class_string>` type **)** const
  197. Check the class of the object against a string (including inheritance).
  198. .. _class_Object_is_connected:
  199. - :ref:`bool<class_bool>` **is_connected** **(** :ref:`String<class_string>` signal, :ref:`Object<class_object>` target, :ref:`String<class_string>` method **)** const
  200. Return true if a connection exists for a given signal and target/method.
  201. .. _class_Object_is_queued_for_deletion:
  202. - :ref:`bool<class_bool>` **is_queued_for_deletion** **(** **)** const
  203. .. _class_Object_notification:
  204. - void **notification** **(** :ref:`int<class_int>` what, :ref:`bool<class_bool>` reversed=false **)**
  205. Notify the object of something.
  206. .. _class_Object_property_list_changed_notify:
  207. - void **property_list_changed_notify** **(** **)**
  208. .. _class_Object_set:
  209. - void **set** **(** :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)**
  210. Set property into the object.
  211. .. _class_Object_set_block_signals:
  212. - void **set_block_signals** **(** :ref:`bool<class_bool>` enable **)**
  213. If set to true, signal emission is blocked.
  214. .. _class_Object_set_message_translation:
  215. - void **set_message_translation** **(** :ref:`bool<class_bool>` enable **)**
  216. Define whether this object can translate strings (with calls to :ref:`tr<class_Object_tr>`). Default is true.
  217. .. _class_Object_set_meta:
  218. - void **set_meta** **(** :ref:`String<class_string>` name, :ref:`Variant<class_variant>` value **)**
  219. Set a metadata into the object. Metadata is serialized. Metadata can be *anything*.
  220. .. _class_Object_set_script:
  221. - void **set_script** **(** :ref:`Reference<class_reference>` script **)**
  222. Set a script into the object, scripts extend the object functionality.
  223. .. _class_Object_tr:
  224. - :ref:`String<class_string>` **tr** **(** :ref:`String<class_string>` message **)** const
  225. Translate a message. Only works if message translation is enabled (which it is by default). See :ref:`set_message_translation<class_Object_set_message_translation>`.