0

いくつかの gdscript コードで列挙型を宣言しました。

次に、いくつかの変数をその型の列挙型として宣言したいと思います。

これは可能ですか?GDScript で var の静的型を宣言できることは知っています。M私が使用したすべての言語では、列挙型を 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 に答える