class_object.rst 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  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_Object:
  4. Object
  5. ======
  6. **Inherited By:** :ref:`Reference<class_reference>`, :ref:`Physics2DServer<class_physics2dserver>`, :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:`Engine<class_engine>`, :ref:`Physics2DDirectSpaceState<class_physics2ddirectspacestate>`, :ref:`MainLoop<class_mainloop>`, :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:`AudioServer<class_audioserver>`, :ref:`VisualServer<class_visualserver>`, :ref:`IP<class_ip>`, :ref:`ClassDB<class_classdb>`, :ref:`OS<class_os>`, :ref:`EditorSelection<class_editorselection>`, :ref:`Physics2DDirectBodyState<class_physics2ddirectbodystate>`, :ref:`TranslationServer<class_translationserver>`, :ref:`EditorFileSystemDirectory<class_editorfilesystemdirectory>`
  7. **Category:** Core
  8. Brief Description
  9. -----------------
  10. Base class for all non built-in types.
  11. Member Functions
  12. ----------------
  13. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  14. | void | :ref:`_get<class_Object__get>` **(** :ref:`String<class_string>` property **)** virtual |
  15. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  16. | :ref:`Array<class_array>` | :ref:`_get_property_list<class_Object__get_property_list>` **(** **)** virtual |
  17. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  18. | void | :ref:`_init<class_Object__init>` **(** **)** virtual |
  19. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  20. | void | :ref:`_notification<class_Object__notification>` **(** :ref:`int<class_int>` what **)** virtual |
  21. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  22. | :ref:`bool<class_bool>` | :ref:`_set<class_Object__set>` **(** :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)** virtual |
  23. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  24. | void | :ref:`add_user_signal<class_Object_add_user_signal>` **(** :ref:`String<class_string>` signal, :ref:`Array<class_array>` arguments=[ ] **)** |
  25. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  26. | :ref:`Variant<class_variant>` | :ref:`call<class_Object_call>` **(** :ref:`String<class_string>` method **)** vararg |
  27. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  28. | :ref:`Variant<class_variant>` | :ref:`call_deferred<class_Object_call_deferred>` **(** :ref:`String<class_string>` method **)** vararg |
  29. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  30. | :ref:`Variant<class_variant>` | :ref:`callv<class_Object_callv>` **(** :ref:`String<class_string>` method, :ref:`Array<class_array>` arg_array **)** |
  31. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  32. | :ref:`bool<class_bool>` | :ref:`can_translate_messages<class_Object_can_translate_messages>` **(** **)** const |
  33. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  34. | :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 **)** |
  35. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  36. | void | :ref:`disconnect<class_Object_disconnect>` **(** :ref:`String<class_string>` signal, :ref:`Object<class_object>` target, :ref:`String<class_string>` method **)** |
  37. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  38. | :ref:`Variant<class_variant>` | :ref:`emit_signal<class_Object_emit_signal>` **(** :ref:`String<class_string>` signal **)** vararg |
  39. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  40. | void | :ref:`free<class_Object_free>` **(** **)** |
  41. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  42. | :ref:`Variant<class_variant>` | :ref:`get<class_Object_get>` **(** :ref:`String<class_string>` property **)** const |
  43. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`String<class_string>` | :ref:`get_class<class_Object_get_class>` **(** **)** const |
  45. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`Array<class_array>` | :ref:`get_incoming_connections<class_Object_get_incoming_connections>` **(** **)** const |
  47. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`int<class_int>` | :ref:`get_instance_id<class_Object_get_instance_id>` **(** **)** const |
  49. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | :ref:`Variant<class_variant>` | :ref:`get_meta<class_Object_get_meta>` **(** :ref:`String<class_string>` name **)** const |
  51. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | :ref:`PoolStringArray<class_poolstringarray>` | :ref:`get_meta_list<class_Object_get_meta_list>` **(** **)** const |
  53. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. | :ref:`Array<class_array>` | :ref:`get_method_list<class_Object_get_method_list>` **(** **)** const |
  55. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  56. | :ref:`Array<class_array>` | :ref:`get_property_list<class_Object_get_property_list>` **(** **)** const |
  57. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  58. | :ref:`Reference<class_reference>` | :ref:`get_script<class_Object_get_script>` **(** **)** const |
  59. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  60. | :ref:`Array<class_array>` | :ref:`get_signal_connection_list<class_Object_get_signal_connection_list>` **(** :ref:`String<class_string>` signal **)** const |
  61. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  62. | :ref:`Array<class_array>` | :ref:`get_signal_list<class_Object_get_signal_list>` **(** **)** const |
  63. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  64. | :ref:`bool<class_bool>` | :ref:`has_meta<class_Object_has_meta>` **(** :ref:`String<class_string>` name **)** const |
  65. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  66. | :ref:`bool<class_bool>` | :ref:`has_method<class_Object_has_method>` **(** :ref:`String<class_string>` method **)** const |
  67. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  68. | :ref:`bool<class_bool>` | :ref:`has_user_signal<class_Object_has_user_signal>` **(** :ref:`String<class_string>` signal **)** const |
  69. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  70. | :ref:`bool<class_bool>` | :ref:`is_blocking_signals<class_Object_is_blocking_signals>` **(** **)** const |
  71. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  72. | :ref:`bool<class_bool>` | :ref:`is_class<class_Object_is_class>` **(** :ref:`String<class_string>` type **)** const |
  73. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  74. | :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 |
  75. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  76. | :ref:`bool<class_bool>` | :ref:`is_queued_for_deletion<class_Object_is_queued_for_deletion>` **(** **)** const |
  77. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  78. | void | :ref:`notification<class_Object_notification>` **(** :ref:`int<class_int>` what, :ref:`bool<class_bool>` reversed=false **)** |
  79. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  80. | void | :ref:`property_list_changed_notify<class_Object_property_list_changed_notify>` **(** **)** |
  81. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  82. | void | :ref:`set<class_Object_set>` **(** :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)** |
  83. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  84. | void | :ref:`set_block_signals<class_Object_set_block_signals>` **(** :ref:`bool<class_bool>` enable **)** |
  85. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  86. | void | :ref:`set_message_translation<class_Object_set_message_translation>` **(** :ref:`bool<class_bool>` enable **)** |
  87. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  88. | void | :ref:`set_meta<class_Object_set_meta>` **(** :ref:`String<class_string>` name, :ref:`Variant<class_variant>` value **)** |
  89. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  90. | void | :ref:`set_script<class_Object_set_script>` **(** :ref:`Reference<class_reference>` script **)** |
  91. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  92. | :ref:`String<class_string>` | :ref:`tr<class_Object_tr>` **(** :ref:`String<class_string>` message **)** const |
  93. +------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  94. Signals
  95. -------
  96. - **script_changed** **(** **)**
  97. Numeric Constants
  98. -----------------
  99. - **NOTIFICATION_POSTINITIALIZE** = **0** --- Called right when the object is initialized. Not available in script.
  100. - **NOTIFICATION_PREDELETE** = **1** --- Called before the object is about to be deleted.
  101. - **CONNECT_DEFERRED** = **1** --- Connect a signal in deferred mode. This way, signal emissions are stored in a queue, then set on idle time.
  102. - **CONNECT_PERSIST** = **2** --- Persisting connections are saved when the object is serialized to file.
  103. - **CONNECT_ONESHOT** = **4** --- One shot connections disconnect themselves after emission.
  104. Description
  105. -----------
  106. Base class for all non built-in types. Everything not a built-in type starts the inheritance chain from this class.
  107. 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++).
  108. 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.
  109. 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.
  110. 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.
  111. Member Function Description
  112. ---------------------------
  113. .. _class_Object__get:
  114. - void **_get** **(** :ref:`String<class_string>` property **)** virtual
  115. Return a property, return null if the property does not exist.
  116. .. _class_Object__get_property_list:
  117. - :ref:`Array<class_array>` **_get_property_list** **(** **)** virtual
  118. 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>`).
  119. .. _class_Object__init:
  120. - void **_init** **(** **)** virtual
  121. .. _class_Object__notification:
  122. - void **_notification** **(** :ref:`int<class_int>` what **)** virtual
  123. Notification request, the notification id is received.
  124. .. _class_Object__set:
  125. - :ref:`bool<class_bool>` **_set** **(** :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)** virtual
  126. Set a property. Return true if the property was found.
  127. .. _class_Object_add_user_signal:
  128. - void **add_user_signal** **(** :ref:`String<class_string>` signal, :ref:`Array<class_array>` arguments=[ ] **)**
  129. 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\_\*).
  130. .. _class_Object_call:
  131. - :ref:`Variant<class_variant>` **call** **(** :ref:`String<class_string>` method **)** vararg
  132. .. _class_Object_call_deferred:
  133. - :ref:`Variant<class_variant>` **call_deferred** **(** :ref:`String<class_string>` method **)** vararg
  134. .. _class_Object_callv:
  135. - :ref:`Variant<class_variant>` **callv** **(** :ref:`String<class_string>` method, :ref:`Array<class_array>` arg_array **)**
  136. .. _class_Object_can_translate_messages:
  137. - :ref:`bool<class_bool>` **can_translate_messages** **(** **)** const
  138. Return true if this object can translate strings.
  139. .. _class_Object_connect:
  140. - :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 **)**
  141. 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.
  142. .. _class_Object_disconnect:
  143. - void **disconnect** **(** :ref:`String<class_string>` signal, :ref:`Object<class_object>` target, :ref:`String<class_string>` method **)**
  144. Disconnect a signal from a method.
  145. .. _class_Object_emit_signal:
  146. - :ref:`Variant<class_variant>` **emit_signal** **(** :ref:`String<class_string>` signal **)** vararg
  147. .. _class_Object_free:
  148. - void **free** **(** **)**
  149. .. _class_Object_get:
  150. - :ref:`Variant<class_variant>` **get** **(** :ref:`String<class_string>` property **)** const
  151. Get a property from the object.
  152. .. _class_Object_get_class:
  153. - :ref:`String<class_string>` **get_class** **(** **)** const
  154. Return the class of the object as a string.
  155. .. _class_Object_get_incoming_connections:
  156. - :ref:`Array<class_array>` **get_incoming_connections** **(** **)** const
  157. Returns an :ref:`Array<class_array>` of dictionaries with informations about signals that are connected to this object.
  158. Inside each :ref:`Dictionary<class_dictionary>` there are 3 fields:
  159. - "source" is a reference to signal emitter.
  160. - "signal_name" is name of connected signal.
  161. - "method_name" is a name of method to which signal is connected.
  162. .. _class_Object_get_instance_id:
  163. - :ref:`int<class_int>` **get_instance_id** **(** **)** const
  164. Return the instance ID. All objects have a unique instance ID.
  165. .. _class_Object_get_meta:
  166. - :ref:`Variant<class_variant>` **get_meta** **(** :ref:`String<class_string>` name **)** const
  167. Return a metadata from the object.
  168. .. _class_Object_get_meta_list:
  169. - :ref:`PoolStringArray<class_poolstringarray>` **get_meta_list** **(** **)** const
  170. Return the list of metadata in the object.
  171. .. _class_Object_get_method_list:
  172. - :ref:`Array<class_array>` **get_method_list** **(** **)** const
  173. .. _class_Object_get_property_list:
  174. - :ref:`Array<class_array>` **get_property_list** **(** **)** const
  175. 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>`).
  176. .. _class_Object_get_script:
  177. - :ref:`Reference<class_reference>` **get_script** **(** **)** const
  178. Return the object script (or null if it doesn't have one).
  179. .. _class_Object_get_signal_connection_list:
  180. - :ref:`Array<class_array>` **get_signal_connection_list** **(** :ref:`String<class_string>` signal **)** const
  181. .. _class_Object_get_signal_list:
  182. - :ref:`Array<class_array>` **get_signal_list** **(** **)** const
  183. Return the list of signals as an array of dictionaries.
  184. .. _class_Object_has_meta:
  185. - :ref:`bool<class_bool>` **has_meta** **(** :ref:`String<class_string>` name **)** const
  186. Return true if a metadata is found with the requested name.
  187. .. _class_Object_has_method:
  188. - :ref:`bool<class_bool>` **has_method** **(** :ref:`String<class_string>` method **)** const
  189. .. _class_Object_has_user_signal:
  190. - :ref:`bool<class_bool>` **has_user_signal** **(** :ref:`String<class_string>` signal **)** const
  191. .. _class_Object_is_blocking_signals:
  192. - :ref:`bool<class_bool>` **is_blocking_signals** **(** **)** const
  193. Return true if signal emission blocking is enabled.
  194. .. _class_Object_is_class:
  195. - :ref:`bool<class_bool>` **is_class** **(** :ref:`String<class_string>` type **)** const
  196. Check the class of the object against a string (including inheritance).
  197. .. _class_Object_is_connected:
  198. - :ref:`bool<class_bool>` **is_connected** **(** :ref:`String<class_string>` signal, :ref:`Object<class_object>` target, :ref:`String<class_string>` method **)** const
  199. Return true if a connection exists for a given signal and target/method.
  200. .. _class_Object_is_queued_for_deletion:
  201. - :ref:`bool<class_bool>` **is_queued_for_deletion** **(** **)** const
  202. .. _class_Object_notification:
  203. - void **notification** **(** :ref:`int<class_int>` what, :ref:`bool<class_bool>` reversed=false **)**
  204. Notify the object of something.
  205. .. _class_Object_property_list_changed_notify:
  206. - void **property_list_changed_notify** **(** **)**
  207. .. _class_Object_set:
  208. - void **set** **(** :ref:`String<class_string>` property, :ref:`Variant<class_variant>` value **)**
  209. Set property into the object.
  210. .. _class_Object_set_block_signals:
  211. - void **set_block_signals** **(** :ref:`bool<class_bool>` enable **)**
  212. If set to true, signal emission is blocked.
  213. .. _class_Object_set_message_translation:
  214. - void **set_message_translation** **(** :ref:`bool<class_bool>` enable **)**
  215. Define whether this object can translate strings (with calls to :ref:`tr<class_Object_tr>`). Default is true.
  216. .. _class_Object_set_meta:
  217. - void **set_meta** **(** :ref:`String<class_string>` name, :ref:`Variant<class_variant>` value **)**
  218. Set a metadata into the object. Metadata is serialized. Metadata can be *anything*.
  219. .. _class_Object_set_script:
  220. - void **set_script** **(** :ref:`Reference<class_reference>` script **)**
  221. Set a script into the object, scripts extend the object functionality.
  222. .. _class_Object_tr:
  223. - :ref:`String<class_string>` **tr** **(** :ref:`String<class_string>` message **)** const
  224. 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>`.