如何在godot脚本的方法中返回类的实例

问题描述

我有一个包含方法 v2 的类 Add。此方法应返回 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

但是当我尝试从另一个类访问类 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_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