Godot Engine: GDScript Cheatsheet#

Básicos#

Comentários

# esse é um comentário

"""
Esse é um
comentário de
múltiplas linhas
"""

Variáveis

# estrutura : var [name] : [type] = [value]
var isso_e_uma_variavel : int = 10

Funções

func isso_e_uma_funcao() -> void:
	print("exemplo")

Condicionais / If-else

if true == false:
    print("If")
elif false == true:
    print("Else if")
else:
    print("Else")

Funções Básicas sobre Node (Built In)#

Chama o método inicial (Similar ao Start() na Unity)

func _ready():
	print("Método Ready foi chamado")

Chama a função de game loop (Similar ao Update() com Time.deltaTime na Unity)

func _process(delta):
	print("Método Process com Delta foi chamado")

Chama a função Physics Loop (Na Unity é como FixedUpdate() com Time.fixedDeltaTime)

func _physics_process(delta):
	print("Método Physics Process com Delta Time foi chamado")

Nomenclatura Publica e Privada#

Aplique um _ (underline) para métodos privados, e nenhum para métodos públicos

# Privado
var _minha_variavel_privada : int = 10
func _minha_funcao_privada():
	pass

# Público
var minha_variavel_publica : int = 10
func minha_funcao_publica():
	pass

Gerenciamento de Cena#

Mudar cena

get_tree().change_scene_to_file('res://'+proxima_cena+'.tscn')

Recarregar cena

get_tree().reload_current_scene()

Fechar jogo

get_tree().quit()

Arrays#

Inicializar Arrays

var _variavel_local : Array[String] = []

Redimensionar Arrays

var _variavel_local : Array[String] = []
_variavel_local.resize(10) # agora o array tem length = 10

Gerenciamento de Node#

Mostrar e esconder objeto

# esconder Node
node_selecionado.hide()

# mostrar Node
node_selecionado.show()

Gerenciamento da Interface da Engine#

@export chama no editor uma referência para a variável (Similar ao [SerializeField] na Unity)

@export var animation_player_path : NodePath

Definir um ícone customizado ao script

# Deve ter uma imagem do ícone e chamar dessa forma:
@icon("res://Theme/Icons/vibration.png")
class_name VibrationArea2D extends Node

Signals#

Adicionar um signal a um script

# estrutura : signal [nome_do_signal]
signal timeout

Chama um signal existente pra ser emitido

# estrutura : [node].[nome_do_signal].connect([função_a_ser_chamada])
timer.timeout.connect(_on_timer_timeout)

func _on_timer_timeout() -> void:
    pass