首页 > 解决方案 > Godot/GdScript 如何从静态函数实例化一个类?

问题描述

我有 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 - 解析错误:无法从静态函数访问成员变量 ("A")。

显然,我无法A从静态函数实例化。如果我删除static,则不再有错误。我究竟做错了什么?如何A从静态函数实例化?

标签: staticgodotgdscript

解决方案


Godot 中没有静态变量。因此,这var A不是一个静态变量。因此它不能从静态函数中获得。

另一方面,如果你给你的班级一个名字class_name——你这样做了——那么这个班级的名字无处不在。删除var A.


推荐阅读