Godot 4中如何为带setter的@export变量设置默认值?
在Godot 4中为带Setter的@export变量设置默认值
要给带自定义setter的@export变量设置默认值,直接在类型声明后加上赋值语句即可,写法如下:
@export var speed: int = 300: set = set_speed func set_speed(new_speed: int) -> void: # 这里可以添加自定义校验或逻辑,比如限制速度不能为负数 speed = max(0, new_speed)
这样speed变量的初始默认值就是300,同时绑定了set_speed作为它的setter函数。当你在Godot编辑器的检查器中修改这个变量的值时,会自动触发set_speed,执行你定义的逻辑。
如果希望初始默认值也经过setter的校验逻辑(比如确保默认值符合你设定的范围),可以在_ready()函数中手动调用一次setter:
@export var speed: int = 300: set = set_speed func _ready() -> void: set_speed(speed) # 让初始默认值也通过setter处理 func set_speed(new_speed: int) -> void: speed = max(0, new_speed)
注意:在setter函数中直接给变量赋值不会触发递归调用,Godot内部已经处理了这个逻辑,所以不用担心无限循环问题。
内容的提问来源于stack exchange,提问作者100k7gm
相关产品推荐
相关产品推荐

