Script¶
继承: Resource < RefCounted < Object
派生: CSharpScript, S3Script, ScriptExtension
存储为资源的类。
描述¶
作为资源存储的类。脚本扩展了实例化它的所有对象的功能。
这是所有脚本的基类,不应直接使用。尝试使用此类创建新脚本将导致错误。
脚本子类的new方法创建一个新实例。Object.set_script()扩展现有对象,如果该对象的类与脚本的基类之一匹配。
属性¶
方法¶
can_instantiate() const |
|
get_base_script() const |
|
get_global_name() const |
|
get_instance_base_type() const |
|
get_property_default_value(property: StringName) |
|
get_rpc_config() const |
|
has_script_signal(signal_name: StringName) const |
|
has_source_code() const |
|
instance_has(base_object: Object) const |
|
is_abstract() const |
|
is_tool() const |
|
属性说明¶
脚本源代码或空字符串(如果源代码不可用)。设置后,不会自动重新加载类实现。
方法说明¶
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
using i3D;
[GlobalClass]
public partial class MyNode : 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。
如果脚本是抽象脚本,则返回true。抽象脚本没有构造函数,无法实例化。
如果脚本是工具脚本,则返回true。工具脚本可以在编辑器中运行。
Error reload(keep_state: bool = false) 🔗
重新加载脚本的类实现。返回错误代码。