知道类的成员变量何时出于任何原因更改通常是很有用的。也可能需要以某种方式封装其访问。
为此,GDScript使用 setget
关键字提供了一个 setter/getter 语法。在变量定义后可直接使用:
var variable = value setget setterfunc, getterfunc
每当变量的值被外部的源(即不是来自类中的本地方法)修改时,setter 函数(上面的 setterfunc)将被调用。这发生在值改变 之前 。setter 必须决定如何处理新值。反之亦然,当访问变量时,必须用 getter 函数(上面的 getterfunc ) 返回所需的值。下面是一个示例:
var my_var setget my_var_set, my_var_get
func my_var_set(new_value):
my_var = new_value
func my_var_get():
return my_var # Getter must return a value.
注解:setget 的函数基本定义是没有实质用处的,具体用处在于在setget函数里添加自己想要的东西。换句话说,是为了知道成员变量何时改变,当其改变只能通过setter 函数,当其被调用,只能通过getter函数。