Как мне реализовать структуры в GDScript? - PullRequest
1 голос
/ 07 мая 2019

Есть ли эквивалент структуры / класса C # в GDScript?Например,

struct Player
{
     string Name;
     int Level;
}

1 Ответ

2 голосов
/ 07 мая 2019

Godot 3.1.1 gdscript не поддерживает structs, но аналогичные результаты могут быть достигнуты при использовании classes, dict или lua style table syntax

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

...