Script

继承: Resource < RefCounted < Object

派生: CSharpScript, S3Script, ScriptExtension

存储为资源的类。

描述

作为资源存储的类。脚本扩展了实例化它的所有对象的功能。

这是所有脚本的基类,不应直接使用。尝试使用此类创建新脚本将导致错误。

脚本子类的new方法创建一个新实例。Object.set_script()扩展现有对象,如果该对象的类与脚本的基类之一匹配。

属性

方法


属性说明

String source_code 🔗

  • void set_source_code(value: String)

  • String get_source_code()

脚本源代码或空字符串(如果源代码不可用)。设置后,不会自动重新加载类实现。


方法说明

bool can_instantiate() const 🔗

如果可以实例化脚本,则返回true


Script get_base_script() const 🔗

返回此脚本直接继承的脚本。


StringName get_global_name() const 🔗

如果存在与脚本关联的类名,则返回该类名。否则返回空字符串。

要为脚本指定一个全局名称,可以在S3Script中使用class_name关键字,在C#中使用[GlobalClass]特性。

class_name MyNode
extends Item

StringName get_instance_base_type() const 🔗

返回脚本的基本类型。


Variant get_property_default_value(property: StringName) 🔗

返回指定属性的默认值。


Variant get_rpc_config() const 🔗

返回Dictionary将方法名称映射到此脚本定义的其RPC配置。


Dictionary get_script_constant_map() 🔗

返回包含常量名称及其值的字典。


Array[Dictionary] get_script_method_list() 🔗

返回此Script中的方法列表。


Array[Dictionary] get_script_property_list() 🔗

返回此Script中的属性列表。


Array[Dictionary] get_script_signal_list() 🔗

返回此Script中定义的用户信号列表。


bool has_script_signal(signal_name: StringName) const 🔗

如果脚本或基类定义了具有给定名称的信号,则返回true


bool has_source_code() const 🔗

如果脚本包含非空源代码,则返回true

注意:如果一个脚本没有源代码,这并不意味着它是无效的或不可用的。例如,使用二进制标记化导出的S3Script没有源代码,但仍然按预期运行并且可以实例化。这可以使用can_instantiate()进行检查。


bool instance_has(base_object: Object) const 🔗

如果base_object是此脚本的实例,则返回true


bool is_abstract() const 🔗

如果脚本是抽象脚本,则返回true。抽象脚本没有构造函数,无法实例化。


bool is_tool() const 🔗

如果脚本是工具脚本,则返回true。工具脚本可以在编辑器中运行。


Error reload(keep_state: bool = false) 🔗

重新加载脚本的类实现。返回错误代码。