TIL
InteractionPopup 고정 및 World Space 캔버스 최적화 과정
youngjin02
2025. 5. 7. 15:41
- 배경
Unity 2022.3.17f1 버전을 사용하여 2D 던전 씬을 제작하는 중,
NPC와 플레이어가 상호작용할 때 "스페이스바를 눌러 미니게임 시작"이라는 문구를
NPC 머리 위에 고정하여 자연스럽게 표시하고자 했습니다. - 발단
초기 설정에서는 문구가 정상적으로 화면에 표시되었지만,
플레이어가 이동할 때마다 텍스트가 화면 기준으로 따라 움직이는 현상이 발생했습니다. - 전개
문제를 해결하기 위해 다음과 같은 수정을 진행했습니다:- InteractionPopup 오브젝트를 NPC (MainSprite)의 자식으로 이동
- Canvas의 Render Mode를 "World Space"로 변경
텍스트가 아예 보이지 않거나, 폰트가 너무 작게 보이는 새로운 문제가 생겼습니다. - 위기
Canvas를 World Space로 설정하면서,
기존 캔버스 크기와 스케일이 월드 좌표계 기준으로 과도하게 커진 상태였고,
그 안의 텍스트가 상대적으로 너무 작게 그려져 사실상 보이지 않는 상황이었습니다.
또한 Canvas의 스케일을 무작정 줄이면 텍스트가 흐릿하거나 깨져 보이는 문제가 추가로 발생했습니다. - 절정
최종적으로 다음과 같은 조정을 통해 문제를 해결했습니다:- Canvas의 Scale을 0.5로 조정
- Text 폰트 사이즈를 1로 축소
- Canvas Width/Height를 텍스트 크기에 맞춰 조정
- Canvas의 Order in Layer를 100으로 올려 벽 타일보다 앞에 나오게 조정
- 결말
결과적으로 InteractionPopup은 NPC 머리 위에 자연스럽게 고정되었고,
카메라 이동에도 위치가 흔들리지 않으면서
선명한 텍스트로 미니게임 시작 문구를 잘 표시할 수 있게 되었습니다.