如何在 godot 脚本的方法中 return class 的实例

How to return instance of class in its method in godot script

我有 class v2,其中包含一个方法 Add。此方法应该 return v2

的新实例

我的代码是这样的

class_name v2

var x : float
var y : float

func _init(_x, _y):
    x = _x
    y = _y
    
func Add(v : v2):
    return v2.new(x + v.x, y + v.y) # error line

但是当我尝试从另一个 class 访问 class v2 时,它向我显示错误

class_name foo

var position = v2.new(0, 0)

#  Parse Error: The class "v2" couldn't be fully loaded (script error or cyclic dependency)

Godot 不允许在 class 文件中使用自己的名称(创建循环引用)。您可以使用此解决方案解决问题:

class_name v2

var x : float
var y : float

func _init(_x, _y):
    x = _x
    y = _y

func Add(v):
    return get_script().new(x + v.x, y + v.y) # no error