【问题标题】:Godot/GdScript How to instantiate a class from a static function?Godot/GdScript 如何从静态函数实例化一个类?
【发布时间】:2021-07-27 09:04:43
【问题描述】:

我有 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?

【问题讨论】:

    标签: static godot gdscript


    【解决方案1】:

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

    另一方面,如果您使用class_name 为您的班级命名 - 您这样做了 - 那么该班级名称无处不在。删除var A。

    【讨论】:

    • 不错。我通过使用const A 修复了它,但你的答案似乎好多了。我会尽快尝试的。
    猜你喜欢
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多