Godot/GdScript 如何从静态函数实例化 class?
Godot/GdScript How to instantiate a class from a static function?
我有 2 个脚本:
A.gd
class_name A
var v = 0
func _init(v_):
v = v_
B.gd
class_name B
var A = preload("res://A.gd")
static func Add(a1:A, a2:A):
return A.new(a1.v + a2.v)
我不明白为什么我在输入时出现此错误:
res://B.gd:6 - Parse Error: Can't access member variable ("A") from a static function.
显然,我无法从静态函数实例化 A
。如果我删除 static
,则不会再有错误。我究竟做错了什么?如何从静态函数实例化 A
?
Godot 中没有静态变量。因此 var A
不是静态变量。因此它不能从静态函数中获得。
另一方面,如果您使用 class_name
为您的 class 命名 - 您确实这样做了 - 那么 class 这个名字无处不在。删除 var A
.
我有 2 个脚本:
A.gd
class_name A
var v = 0
func _init(v_):
v = v_
B.gd
class_name B
var A = preload("res://A.gd")
static func Add(a1:A, a2:A):
return A.new(a1.v + a2.v)
我不明白为什么我在输入时出现此错误:
res://B.gd:6 - Parse Error: Can't access member variable ("A") from a static function.
显然,我无法从静态函数实例化 A
。如果我删除 static
,则不会再有错误。我究竟做错了什么?如何从静态函数实例化 A
?
Godot 中没有静态变量。因此 var A
不是静态变量。因此它不能从静态函数中获得。
另一方面,如果您使用 class_name
为您的 class 命名 - 您确实这样做了 - 那么 class 这个名字无处不在。删除 var A
.