如何在GDScript中实现数据结构?

12

在GDScript中是否有与C#结构/类等效的东西? 例如:

struct Player
{
     string Name;
     int Level;
}

我在你回答的那天就接受了它,谢谢你的帮助 :) 你看不到它吗? - Max
1
我真是太傻了!我正在使用一个新的浏览器扩展程序将页面切换到“暗模式”,但忘记在stackoverflow上关闭它。对我来说,复选标记显示为灰色,尽管实际上是绿色的。我将删除我的原始评论。谢谢! - Dayan
1个回答

28

Godot 3.1.1 gdscript不支持structs,但可以使用classesdict或者lua风格的表格语法来实现类似的结果。

http://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_basics.html

GDScript可以包含多个内部类,在内部类中创建一个具有适当属性的内部类,模仿上面的示例即可:

class Player:
    var Name: String
    var Level: int

以下是使用该Player类的完整示例:

extends Node2D

class Player:
    var Name: String
    var Level: int

func _ready() -> void:
    var player = Player.new()
    player.Name  = "Hello World"
    player.Level = 60

    print (player.Name, ", ", player.Level)
    #prints out: Hello World, 60

你还可以使用Lua风格的表语法:

extends Node2D

#Example obtained from the official Godot gdscript_basics.html  
var d = {
    test22 = "value",
    some_key = 2,
    other_key = [2, 3, 4],
    more_key = "Hello"
}

func _ready() -> void:
    print (d.test22)
    #prints: value

    d.test22 = "HelloLuaStyle"
    print (d.test22)
    #prints: HelloLuaStyle

仔细查看官方文档以获得细节说明:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接