0

我在一些 gdscript 代码中声明了一个枚举。

然后,我想将一些变量声明为该类型的枚举。

这可能吗。我知道 GDScript 允许声明 var 的静态类型。我使用的每种语言都允许您将枚举视为 var。

以下代码为我产生以下错误...

enum XDir {
    None,
    Left,
    Right
}

enum YDir {
    None,
    Up,
    Down
}

var x_dir : XDir
var y_dir : YDir

解析器错误:标识符“XDir”不是有效类型(不是脚本或类),或者无法在基础“self”上找到。

4

1 回答 1

2

这还不可能。GDScript 中的枚举是常量字典的语法糖,不是实际类型。

int在将枚举变成真正的类型之前,您必须将其用作类型。

请注意,您仍然可以给枚举点export

export(XDir) var x_dir: int

要在运行时强制执行枚举值,您可以执行以下操作:

assert(XDir.has(x_dir))
于 2019-12-11T03:27:13.773 回答