Post

GDScript의 문법 설탕: `@onready`와 `$`로 코드 간결하게 쓰기 🚀

인디 게임 개발을 위한 GDScript의 문법 설탕으로 간편한 노드 초기화와 접근 방법을 알아보세요.

GDScript의 문법 설탕: `@onready`와 `$`로 코드 간결하게 쓰기 🚀

GDScript에서 @onready$ 사용해 코드 간결하게 쓰기 🚀

Godot에서 스크립트를 작성하다 보면 자주 쓰는 코드가 몇 가지 있습니다. 특히, get_node()를 사용해 노드에 접근하는 코드는 빈번하게 등장하는데, 이를 좀 더 간단하게 만들어주는 “문법 설탕(Syntactic Sugar)”이 GDScript에는 두 가지가 있습니다. 바로 @onready$입니다. 이 두 가지를 잘 활용하면 코드가 훨씬 깔끔해지고 가독성이 좋아집니다. 오늘은 그 사용법을 함께 살펴보겠습니다! 🎮✨


문법 설탕(Syntactic Sugar)이란?

“문법 설탕”은 코드의 기능을 그대로 유지하면서, 더 읽기 쉽고 작성하기 편하게 만들어 주는 코드 축약 방법입니다. GDScript의 @onready$도 이에 해당하며, Godot 엔진을 사용하는 개발자라면 필수로 알아두면 좋습니다.


@onready로 초기화 간소화하기

@onready_ready() 함수가 호출되기 직전에 변수나 노드를 초기화할 때 사용됩니다. 보통 _ready() 함수 내부에서 초기화할 노드를 미리 정의하고 싶을 때 유용합니다. 예를 들어, 아래와 같이 작성할 수 있습니다.

nodeds imgage

예시: @onready 사용 전후 비교

1
2
3
4
# @onready 없이 사용하는 경우
var sprite2d
func _ready():
    sprite2d = get_node("Sprite2D")

위와 같이 작성하면 sprite2d_ready() 함수 내에서 초기화해야 합니다. 하지만 @onready를 사용하면 다음과 같이 더 간단하게 표현할 수 있습니다:

1
2
# @onready 사용
@onready var sprite2d = get_node("Sprite2D")

이렇게 하면 _ready() 함수 밖에서도 초기화가 가능해지고, 코드가 한 줄로 간결해집니다.


$get_node() 간단하게 쓰기

$get_node()의 단축 표기로, 자주 쓰는 get_node("NodeName")를 더 짧고 직관적으로 표현할 수 있습니다. 특히, 코드가 길어질수록 가독성을 높이는 데 큰 도움이 됩니다.

예시: $ 사용

1
2
@onready var sprite2d = get_node("Sprite2D")
@onready var sprite2d = $Sprite2D  # 더 간결하게 쓰기!


$@onready의 조합으로 코드 최적화하기

@onready$를 함께 사용하면 더욱더 간편하게 노드에 접근할 수 있습니다. 경로가 깊은 노드에도 $를 사용할 수 있기 때문에 코드 작성이 훨씬 수월해집니다.

예시: $@onready 조합 사용

1
2
@onready var animation_player = get_node("ShieldBar/AnimationPlayer")
@onready var animation_player = $ShieldBar/AnimationPlayer  # `$`를 활용해 더 간단하게

위 코드처럼 $ 기호를 활용해 긴 경로를 짧게 작성하면 코드가 직관적이고, 오류 발생 가능성도 줄어듭니다.


실용적인 사용 사례와 팁

@onready$는 다음과 같은 경우에 특히 유용합니다:

  • _ready() 함수에서만 사용할 노드 초기화: _ready() 함수 내에서만 사용할 노드를 미리 초기화할 때, @onready로 간단하게 정의할 수 있습니다.
  • 짧은 경로의 노드: $를 활용하면 경로가 짧은 노드 접근이 간단해지며, 긴 경로에서는 get_node()를 사용하는 것이 더 가독성에 좋을 수 있습니다.

참고사이트

📘 godot 공식홈페이지 node path shorthand 검색


결론

@onready$는 코드 작성과 가독성을 높이는 데 아주 유용한 도구입니다. 특히, 반복적으로 사용하는 노드 초기화와 접근 코드를 간단하게 바꿔줌으로써 개발 시간을 절약하고, 코드를 더 명확하게 만들어 줍니다. 지금 바로 여러분의 프로젝트에 적용해 보세요! 🙌🌟

🍻 맥주 개발자를 위한 후원 링크

더 많은 개발 팁과 경험담이 필요하신 분들은 제 소셜 채널도 확인해 주세요!

🌲Link tree

혹시라도 저에 대해서 더 알고 싶으시다면! 🕵️🍻 About Redping

This post is licensed under CC BY 4.0 by the author.