📅  最后修改于: 2023-12-03 15:01:01.042000             🧑  作者: Mango
Godot是一个开源的、跨平台的游戏引擎,它采用了一种基于节点图的编程方法,使得它的操作变得非常简单。在Godot中,导出列表可以帮助你将内部变量导出给其他类或编辑器。本文将对Godot中的导出列表作一个详细的介绍。
在Godot中,导出列表是一种将节点或资源的内部变量暴露给其他类或编辑器的机制,这样就可以在其他类中访问到这些变量,并且可以在编辑器中进行相应的修改。导出列表使用@export
装饰器来声明。
以下是一个使用导出列表的例子:
from godot import *
class MyNode(Node2D):
@export(float) # 将变量speed导出为浮点数类型
var speed = 10.0
在上面的例子中,我们使用@export
装饰器将speed
变量导出为浮点数类型。这样,在其他类中就可以使用MyNode.speed
来访问这个变量,并且可以在编辑器中修改它的值。
Godot中导出列表支持以下数据类型:
bool
int
float
String
NodePath
Resource
Type
int
, Enum
以下是一个包含所有支持的数据类型的例子:
from godot import *
class MyNode(Node2D):
@export(bool)
var b = True
@export(int)
var i = 10
@export(float)
var f = 3.14
@export(String)
var s = 'Hello, Godot!'
@export(NodePath)
var path = NodePath('MainScene/MySprite')
@export(Resource)
var resource = Resource('res://MyResource.tres')
@export(Type)
var node = Node2D
@export(int, 'Enum', {'A': 0, 'B': 1, 'C': 2})
var enum_value = 1
在上面的例子中,我们演示了所有支持的数据类型。
Godot中的导出列表支持以下可选参数:
以下是一个例子,演示了如何使用这些可选参数:
from godot import *
class MyNode(Node2D):
@export(float, name='Speed', hint='velocity', toplevel=True, doubleclick=True, multiline=True, rsetget=True)
var speed = 10.0
在上面的例子中,我们使用了name
、hint
、toplevel
、doubleclick
、multiline
和rsetget
这些可选参数。
除了导出变量,Godot也支持导出信号。导出信号使用@signal
装饰器来声明。
以下是一个使用导出信号的例子:
from godot import *
class MyNode(Node2D):
@signal
def custom_signal(x: int, y: int):
pass
在上面的例子中,我们使用@signal
装饰器将custom_signal
导出为一个信号。这样,在其他类中就可以通过连接到MyNode
的custom_signal
信号来接收该信号。