<코드순서>
01. tool
02. class_name
03. extends
04. # docstring
05. signals
06. enums
07. constants
08. exported variables
09. public variables
10. private variables
11. onready variables
12. optional built-in virtual _init method
13. built-in virtual _ready method
14. remaining built-in virtual methods
15. public methods
16. private methods
++++++++++++++++++++++++++++++++++++++
if param1 < local_var:
elif param2 > 5:
else:
for s in strings:
while i < strings.size():
match x:
1:
2:
"test":
enum {TILE_BRICK, TILE_FLOOR, TILE_SPIKE, TILE_TELEPORT}
var arr = []
var b = arr[1]
var dic = {4: 5, "A key": "A value", 28: [1, 2, 3]}
d["Hi!"] = 0
Setter(세터)/Getter(게터)
var variable = value setget setterfunc, getterfunc
삼항(Ternary) 연산자
next_state = "fall" if not is_on_floor() else "idle"
불리언(Boolean)
if (foo and bar) or baz:
print("hello world")
print('hello "world"')
노드 만들기, 지우기
s = Sprite.new()
add_child(s)
s.queue_free()
씬 인스턴스 하기
var scene = preload("res://myscene.tscn")
var node = scene.instance()
add_child(node)
스크립트를 클래스로 등록하기
class_name ScriptName, "res://path/to/optional/icon.svg"
var cppNode = MyCppNode.new() # new instance of a class named MyCppNode
선택 정적 타이핑
var health: int = 0
func heal(amount: int) -> void:
onready var health_bar: ProgressBar = get_node("UI/LifeBar")
시그널
signal health_changed
emit_signal("health_changed", old_health, health)
func _on_Character_health_changed(old_value, new_value):
yield를 가진 코루틴(Coroutine)
yield()
y.resume()
yield(button_func(), "completed")
시그널+yield
# Resume execution when animation is done playing.
yield(get_node("AnimationPlayer"), "animation_finished")
onready var my_label = get_node("MyLabel")
스크립트를 로딩해서 클래스 타입으로 사용
const Rifle = preload("res://player/weapons/Rifle.gd")
var my_rifle: Rifle
class_name을 사용한다면, Godot는 Rifle 타입을 편집기에서
전역으로 등록합니다, 그리고 상수에 미리 불러올 필요 없이 어디에나 그것을 쓸 수 있습니다:
extends Node2D
class_name Rifle
var my_rifle: Rifle
변수 캐스팅
func _on_body_entered(body: PhysicsBody2D) -> void:
var player := body as PlayerController
화살표로 함수의 반환 타입 정의하기
func _process(delta: float) -> void:
pass
'개발 > 고도 엔진.Godot engine' 카테고리의 다른 글
GODOT 2D SHADER 2D 쉐이더 / 투명, 밝게, 어둡게 (0) | 2021.10.25 |
---|---|
GODOT3 폰트 테마 (0) | 2021.06.01 |
GODOT3 튜토리얼 : Make an Action RPG in Godot 3.2 (0) | 2021.05.21 |
Godot 3.2 Autotile bitmask (0) | 2020.10.01 |
GODOT3 튜토리얼 : Scriptable Objects (0) | 2020.09.07 |