게임/고도엔진 문법

15. [고도 엔진] 인스펙터 창에서 변수 조작하기: @export 활용

밀감감 2026. 7. 3. 22:00
반응형

 

이 카테고리는 고도 엔진(Godot Engine) 관련 문법을 기록하고 저장하기 위해 만든 공간입니다.

 

이번에는 '인스펙터 창에서 변수 조작하기: @export 활용법'입니다.

게임을 만들다 보면 플레이어의 이동 속도, 몬스터의 체력, 무기의 데미지 등 수많은 수치를 끊임없이 수정하며 밸런스를 맞춰야 합니다. 이때마다 스크립트를 열어서 일일이 숫자를 고치고 저장하는 것은 매우 번거롭죠. @export 키워드를 변수 앞에 붙여주면, 해당 변수가 에디터 우측의 '인스펙터(Inspector) 창'에 노출되어 코드를 건드리지 않고도 마우스로 쉽게 값을 변경할 수 있습니다!

1. @export 기본 사용법: 변수를 밖으로 꺼내기

변수를 선언할 때 맨 앞에 @export만 붙여주면 끝입니다. 이제 이 스크립트가 적용된 노드를 클릭하면 인스펙터 창에 변수가 나타나 마음대로 값을 바꿀 수 있습니다.

GDScript
 
extends CharacterBody2D

# 인스펙터 창에 노출되어 에디터에서 쉽게 수치를 바꿀 수 있습니다.
@export var move_speed = 300
@export var player_name = "용사"

func _physics_process(delta):
    # 에디터 인스펙터에서 수정한 move_speed 값이 실시간으로 적용됩니다.
    velocity.x = move_speed

2. 강력한 실전 팁: 타입 지정과 슬라이더(@export_range)

인스펙터 창에 노출할 때는 데이터 타입(: int, : float 등)을 명확히 적어주는 것이 좋습니다. 엉뚱한 값(숫자 칸에 글자 입력 등)이 들어가는 것을 막아주기 때문입니다. 또한, 범위를 지정해 주면 인스펙터 창에 예쁜 슬라이더(Slider) 바가 생겨 직관적인 조작이 가능해집니다.

GDScript
 
extends Node

# 1. 타입 지정: 정수(int)만 입력할 수 있도록 강제합니다.
@export var max_hp: int = 100

# 2. 범위 지정: 0부터 100까지 마우스로 조절 가능한 슬라이더 UI가 생성됩니다.
@export_range(0, 100) var volume_level: int = 50

# 3. 드롭다운 메뉴: 정해진 목록 중에서만 선택하게 만듭니다. (오타 방지에 탁월함)
@export_enum("전사", "마법사", "궁수") var job_class: String = "전사"

3. 노드(Node) 직접 연결하기

이전에 @onready var와 $ 기호로 자식 노드를 가져오는 것을 배웠지만, 씬 구조가 복잡하거나 다른 씬의 노드를 가져와야 할 때는 @export를 통해 인스펙터 창에서 마우스 드래그 앤 드롭으로 직접 노드를 연결해 줄 수도 있습니다.

GDScript
 
# 에디터 인스펙터 창에 대상 노드를 직접 끌어다 넣을 수 있는 빈칸이 생깁니다.
@export var target_enemy: Node2D

한눈에 보는 @export 핵심 요약

키워드 / 문법 기능 설명 에디터(인스펙터) UI 변화
@export var 변수 스크립트의 변수를 인스펙터 창에 노출 값을 입력할 수 있는 기본 텍스트/숫자 칸 생성
@export_range(최소, 최대) 변수의 입력 가능한 범위를 제한 마우스로 좌우로 끄는 슬라이더 바 생성
@export_enum("A", "B") 정해진 문자열이나 숫자 목록 중 하나만 선택하도록 강제 클릭 시 목록이 펼쳐지는 드롭다운 메뉴 생성
@export var 변수: Node 씬 트리에 있는 다른 노드를 직접 참조할 수 있게 함 씬에서 노드를 지정할 수 있는 [비어 있음] 칸 생성
반응형