제미니 답변 :
Godot 엔진에서 노드에 접근할 때 %와 $는 모두 노드 경로를 이용하는 방법이지만, 노드 검색 범위에서 차이가 있어요.
% (퍼센트)
%는 현재 씬 루트에서 노드를 찾아요. 즉, 현재 씬의 최상위 노드를 기준으로 경로를 탐색해요. 이 방법은 Unique Node를 사용하는 것과 동일해요. Unique Node는 Godot 4.0 이후에 도입된 기능으로, 씬 내에서 유일한 이름으로 노드를 등록하고, %를 이용해 어디서든 빠르게 접근할 수 있게 해줘요. 이 방식은 노드의 위치가 바뀌더라도 씬 내에서 이름만 동일하다면 스크립트를 수정할 필요가 없어서 안정적이고, 런타임 성능 저하도 거의 없어요.
장점:
- 안정성: 노드의 위치가 변경되어도 경로를 수정할 필요가 없어요.
- 효율성: 한 번 경로가 캐시되어 이후 접근이 매우 빨라요.
- 가독성: 노드 이름으로 직관적인 접근이 가능해요.
- 디버깅: 존재하지 않는 노드에 접근하려 할 경우, 에디터에서 경고를 띄워줘서 디버깅이 쉬워요.
$ (달러)
$는 현재 노드를 기준으로 노드를 찾아요. 이는 get_node() 함수를 사용하는 것과 같은 역할을 해요. $ 뒤에 오는 경로는 현재 스크립트가 붙어 있는 노드부터 시작하는 상대 경로 또는 씬의 최상위 노드부터 시작하는 절대 경로가 될 수 있어요.
장점:
- 유연성: 현재 노드를 기준으로 노드를 찾으므로, 특정 부모나 형제 노드에 접근하기 용이해요.
- 직관성: 노드 계층 구조를 보면서 상대적인 위치를 파악하기 쉬워요.
단점:
- 위치 의존성: 노드의 위치가 변경되면 스크립트 내의 경로도 수정해야 해요.
- 오류 가능성: 경로를 잘못 지정하거나 노드의 이름이 변경되면 런타임 오류가 발생할 수 있어요.
- 성능: 매번 노드를 검색하기 때문에 % 방식보다 미세하게 느릴 수 있어요.
요약 📝
- %: 씬 루트에서 검색 (Unique Node). 노드 위치가 바뀌어도 안정적.
- $: 현재 노드에서 검색 (get_node()와 동일). 노드 위치에 따라 경로를 수정해야 함.
💡 일반적으로 Godot 4.0 이후 버전에서는 **%**를 사용해 Unique Node로 노드에 접근하는 것이 더 안전하고 효율적이에요. 특정 경우(예: 현재 노드의 직계 자식 노드에 빠르게 접근)를 제외하고는 $ 대신 %를 사용하는 것을 권장해요.
'개발 > 고도 엔진.Godot engine' 카테고리의 다른 글
| 고도엔진 Godot 4.5 / 일반 어플리케이션 개발 관련. _physics_process _process 시그널 (0) | 2025.09.19 |
|---|---|
| 고도엔진 Godot 4.5 / transform.basis 설명 (0) | 2025.09.19 |
| 고도엔진 Godot 4.5 / 애드온 AddOns 3D게임관련 (0) | 2025.09.19 |
| 고도엔진 Godot 4.5 / AMD 그래픽카드 Forward+ 렌더링에서 메시가 안보이는 문제 해결 (0) | 2025.09.18 |
| 고도엔진 Godot 4.5 / 기본 GDScript 문법 정리 스크립트 (0) | 2025.09.18 |