New*_*yte 3 random enums gdscript godot
我在 GDScript 中声明了一个像这样的枚举:
enum State = { STANDING, WALKING, RUNNING }
Run Code Online (Sandbox Code Playgroud)
我想获得此枚举的随机变体,而不提及它的所有变体,以便稍后可以向枚举添加更多变体,而无需更改负责获取随机变体的代码。
到目前为止,我已经尝试过:
State.get(randi() % State.size())
Run Code Online (Sandbox Code Playgroud)
和这个:
State[randi() % State.size()]
Run Code Online (Sandbox Code Playgroud)
都不起作用。前者给我 Null,后者给我错误“无效的获取索引 '2'(基于:'字典')”。
我该如何以实际有效的方式做到这一点?
这可以通过以下方式实现:
State.keys()[randi() % State.size()]
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为keys()将 State 字典转换为数组,可以使用[].