对象

继承人: ARVRPositionalTrackerARVRServerAudioServerCameraServerClassDBEditorFileSystemDirectoryEditorNavigationMeshGeneratorEditorSelectionEngineGeometryGodotSharpIPInputInputMapJSONJavaScriptMainLoopNodeOSPerformancePhysics2DDirectBodyStatePhysics2DDirectSpaceStatePhysics2DServerPhysicsDirectBodyStatePhysicsDirectSpaceStatePhysicsServerProjectSettingsReferenceResourceLoaderResourceSaverTranslationServerTreeItemUndoRedoVisualScriptEditorVisualServer

类别: 核心

简要说明

所有非内置类型的基类。

方法

Variant

_get ( String property ) virtual

Array

_get_property_list ( ) virtual

无效

_init ( ) virtual

无效

_notification ( int what ) virtual

bool

_set ( String property, Variant value ) virtual

String

_to_string ( ) virtual

无效

add_user_signal ( String signal, Array arguments=[ ] )

Variant

call ( String method, ... ) vararg

Variant

call_deferred ( String method, ... ) vararg

Variant

callv ( String method, Array arg_array )

bool

can_translate_messages ( ) const

Error

connect ( String signal, Object target, String method, Array binds=[ ], int flags=0 )

无效

disconnect ( String signal, Object target, String method )

Variant

emit_signal ( String signal, ... ) vararg

无效

free ( )

Variant

get ( String property ) const

String

get_class ( ) const

Array

get_incoming_connections ( ) const

Variant

get_indexed ( NodePath property ) const

int

get_instance_id ( ) const

Variant

get_meta ( String name ) const

PoolStringArray

get_meta_list ( ) const

Array

get_method_list ( ) const

Array

get_property_list ( ) const

Reference

get_script ( ) const

Array

get_signal_connection_list ( String signal ) const

Array

get_signal_list ( ) const

bool

has_meta ( String name ) const

bool

has_method ( String method ) const

bool

has_user_signal ( String signal ) const

bool

is_blocking_signals ( ) const

bool

is_class ( String class ) const

bool

is_connected ( String signal, Object target, String method ) const

bool

is_queued_for_deletion ( ) const

无效

notification ( int what, bool reversed=false )

无效

property_list_changed_notify ( )

无效

remove_meta ( String name )

无效

set ( String property, Variant value )

无效

set_block_signals ( bool enable )

无效

set_deferred ( String property, Variant value )

无效

set_indexed ( NodePath property, Variant value )

无效

set_message_translation ( bool enable )

无效

set_meta ( String name, Variant value )

无效

set_script ( Reference script )

String

to_string ( )

String

tr ( String message ) const

信号

  • script_changed ( )

每当对象的脚本更改时发出。

枚举

枚举 ConnectFlags

  • CONNECT_DEFERRED = 1 ---以延迟模式连接信号。这样,信号发射被存储在一个队列中,然后设置为空闲时间。

  • CONNECT_PERSIST = 2 ---将对象序列化为文件时保存持久连接。

  • CONNECT_ONESHOT = 4 ---一次连接在排放后自行断开。

  • CONNECT_REFERENCE_COUNTED = 8 ---连接一个信号作为参考计数。这意味着一个给定的信号可以多次连接到同一个目标,并且只有在不留下任何引用时才会完全断开。

常量

  • NOTIFICATION_POSTINITIALIZE = 0 ---对象初始化时调用了right。脚本中不可用。

  • NOTIFICATION_PREDELETE = 1 ---在对象即将被删除之前调用。

描述

不是内置类型的每个类都继承自该类。

可以从脚本语言构造对象,使用 Object.new() 在GDScript中, new Object 在C#中,或在VisualScript中的“构造对象”节点。

对象不管理内存。如果类继承自对象,则必须手动删除它的实例。为此,请致电 free 方法从脚本或从C++中删除实例。

一些扩展对象的类增加了内存管理。这就是 Reference ,它对引用进行计数,并在不再引用时自动删除自身。 Node 这是另一个基本类型,当从内存释放时会删除它的所有子级。

对象导出属性,这些属性主要用于存储和编辑,但实际上在编程中并不多见。属性导出到 _get_property_list 和处理 _get_set . 但是,脚本语言和C++有更简单的方法来导出它们。

对象还接收通知。通知是通知对象不同事件的简单方法,因此它们都可以一起处理。见 _notification .

方法说明

可以重写以自定义的返回值的虚拟方法 get .

返回给定的属性。退换商品 null 如果 property 不存在。

  • Array _get_property_list ( ) virtual

可以重写以自定义的返回值的虚拟方法 get_property_list .

将对象的属性列表作为 Array 字典。

每个物业的 Dictionary 必须至少包含 name: Stringtype: int (见 Variant.Type )条目。可选,还可以包括 hint: int (见 PropertyHinthint_string: Stringusage: int (见 PropertyUsageFlags

  • void _init ( ) virtual

初始化对象时调用。

  • void _notification ( int what ) virtual

每当对象收到通知时调用,该通知在 what 通过一个常数。基地 Object 有两个常量 NOTIFICATION_POSTINITIALIZENOTIFICATION_PREDELETE ,但子类如 Node 定义更多的通知,这些通知也是通过此方法接收的。

可以重写以自定义的返回值的虚拟方法 set .

设置属性。退换商品 true 如果 property 存在。

  • String _to_string ( ) virtual

可以重写以自定义的返回值的虚拟方法 to_string ,从而将对象的表示形式转换为字符串,例如 print(obj) .

返回A String 表示对象。如果不重写,则默认为 "[ClassName:RID]" .

  • void add_user_signal ( String signal, Array arguments=[ ] )

添加用户定义的 signal . 参数是可选的,但可以作为 Array 字典,每个字典包含 name: Stringtype: int (见 Variant.Type )条目。

调用 method 并返回结果。此方法支持可变数量的参数,因此参数以逗号分隔的列表形式传递。例子:

call("set", "position", Vector2(42.0, 0.0))

调用 method 在空闲时间对对象执行,并返回结果。此方法支持可变数量的参数,因此参数以逗号分隔的列表形式传递。例子:

call_deferred("set", "position", Vector2(42.0, 0.0))

调用 method 并返回结果。相反地 call ,此方法不支持变量个数的参数,但应通过单个参数传递所有参数。 Array .

callv("set", [ "position", Vector2(42.0, 0.0) ])
  • bool can_translate_messages ( ) const

返回 true 如果对象可以转换字符串。见 set_message_translationtr .

连接一个 signal 到A method 在一 target 对象。通过可选 binds 作为一个 Array 参数。使用 flags 设置延迟或一次性连接。见 ConnectFlags 常量。

A signal 只能连接一次到 method . 如果已经连接,它将抛出一个错误,除非信号与 CONNECT_REFERENCE_COUNTED . 为了避免这种情况,首先,使用 is_connected 检查现有连接。

如果 target 在游戏的生命周期中被破坏,连接将丢失。

实例:

connect("pressed", self, "_on_Button_pressed") # BaseButton signal
connect("text_entered", self, "_on_LineEdit_text_entered") # LineEdit signal
connect("hit", self, "_on_Player_hit", [ weapon_type, damage ]) # User-defined signal

断开A signal 从A method 关于给定 target .

如果尝试断开不存在的连接,该方法将引发错误。使用 is_connected 以确保连接存在。

发出给定的 signal . 信号必须存在,因此它应该是此类或其父类之一的内置信号,或者是用户定义的信号。此方法支持可变数量的参数,因此参数以逗号分隔的列表形式传递。例子:

emit_signal("hit", weapon_type, damage)
emit_signal("game_over")
  • void free ( )

从内存中删除对象。对已释放对象的任何预先存在的引用现在将返回 null .

返回 Variant 给定值 property .

将对象的类作为 String .

  • Array get_incoming_connections ( ) const

返回一个 Array 包含有关连接到对象的信号的信息的字典。

Dictionary 包含三个字符串项:

  • source 是对信号发射器的引用。

  • signal_name 是连接信号的名称。

  • method_name 是信号连接到的方法的名称。

获取由给定的 NodePath . 节点路径应该相对于当前对象,并且可以使用冒号字符 (: )访问嵌套属性。示例: "position:x""material:next_pass:blend_mode" .

  • int get_instance_id ( ) const

返回对象的唯一实例ID。

此ID可以保存在 EncodedObjectAsID ,并可用于使用 @GDScript.instance_from_id .

返回给定对象的元数据项 name .

将对象的元数据作为 PoolStringArray .

  • Array get_method_list ( ) const

将对象的方法及其签名作为 Array .

  • Array get_property_list ( ) const

将对象的属性列表作为 Array 字典。

每个物业的 Dictionary 至少包含 name: Stringtype: int (见 Variant.Type )条目。可选,还可以包括 hint: int (见 PropertyHinthint_string: Stringusage: int (见 PropertyUsageFlags

返回对象的 Script 实例,或 null 如果没有分配。

  • Array get_signal_connection_list ( String signal ) const

返回一个 Array 对于给定的 signal .

  • Array get_signal_list ( ) const

将信号列表返回为 Array 字典。

返回 true 如果在给定的 name .

返回 true 如果对象包含给定的 method .

返回 true 如果给定的用户定义 signal 存在。

  • bool is_blocking_signals ( ) const

返回 true 如果启用信号发射阻塞。

返回 true 如果对象继承自给定的 class .

返回 true 如果给定的 signaltargetmethod .

  • bool is_queued_for_deletion ( ) const

返回 true 如果 Node.queue_free 为对象调用了方法。

  • void notification ( int what, bool reversed=false )

向对象发送给定的通知,这也将触发对 _notification 对象继承自的所有类的方法。

如果 reversedtrue_notification 首先在对象自己的类上调用,然后调用到它的后续父类。如果 reversedfalse_notification 在最高祖先身上被称为第一个 (Object 然后是它的连续继承类。

  • void property_list_changed_notify ( )

通知编辑器属性列表已更改,以便编辑器插件可以考虑新值。在导出生成时不执行任何操作。

  • void remove_meta ( String name )

从对象的元数据中删除给定条目。

为给定的属性赋值。如果 property 不存在,什么都不会发生。

  • void set_block_signals ( bool enable )

如果设置为 true ,信号发射受阻。

在当前帧的物理步骤之后,为给定属性指定新值。这相当于呼叫 set 通过 call_deferred ,即 call_deferred("set", property, value) .

将新值赋给由 NodePath . 节点路径应该相对于当前对象,并且可以使用冒号字符 (: )访问嵌套属性。例子:

set_indexed("position", Vector2(42, 0))
set_indexed("position:y", -10)
print(position) # (42, -10)
  • void set_message_translation ( bool enable )

定义对象是否可以转换字符串(通过调用 tr )默认启用。

添加或更改对象元数据中的给定项。元数据被序列化,并且可以 Variant 价值。

为对象分配脚本。每个对象可以有一个分配给它的脚本,用于扩展其功能。

返回A String 表示对象。如果不重写,则默认为 "[ClassName:RID]" .

重写方法 _to_string 自定义 String 表示。

使用项目设置中配置的转换目录转换消息。

只有在启用了消息转换(默认情况下是这样)时才有效,否则它将返回 message 不变。见 set_message_translation .