TIL

InteractionPopup 고정 및 World Space 캔버스 최적화 과정

youngjin02 2025. 5. 7. 15:41

    • 배경
      Unity 2022.3.17f1 버전을 사용하여 2D 던전 씬을 제작하는 중,
      NPC와 플레이어가 상호작용할 때 "스페이스바를 눌러 미니게임 시작"이라는 문구를
      NPC 머리 위에 고정하여 자연스럽게 표시하고자 했습니다.

    • 발단
      초기 설정에서는 문구가 정상적으로 화면에 표시되었지만,
      플레이어가 이동할 때마다 텍스트가 화면 기준으로 따라 움직이는 현상이 발생했습니다.

    • 전개
      문제를 해결하기 위해 다음과 같은 수정을 진행했습니다:
      1. InteractionPopup 오브젝트를 NPC (MainSprite)의 자식으로 이동
      2. Canvas의 Render Mode를 "World Space"로 변경
      그러나 World Space로 변경한 뒤,
      텍스트가 아예 보이지 않거나, 폰트가 너무 작게 보이는 새로운 문제가 생겼습니다.

    • 위기
      Canvas를 World Space로 설정하면서,
      기존 캔버스 크기와 스케일이 월드 좌표계 기준으로 과도하게 커진 상태였고,
      그 안의 텍스트가 상대적으로 너무 작게 그려져 사실상 보이지 않는 상황이었습니다.
      또한 Canvas의 스케일을 무작정 줄이면 텍스트가 흐릿하거나 깨져 보이는 문제가 추가로 발생했습니다.

    • 절정
      최종적으로 다음과 같은 조정을 통해 문제를 해결했습니다:
      • Canvas의 Scale을 0.5로 조정
      • Text 폰트 사이즈를 1로 축소
      • Canvas Width/Height를 텍스트 크기에 맞춰 조정
      • Canvas의 Order in Layer를 100으로 올려 벽 타일보다 앞에 나오게 조정
    • 결말
      결과적으로 InteractionPopup은 NPC 머리 위에 자연스럽게 고정되었고,
      카메라 이동에도 위치가 흔들리지 않으면서
      선명한 텍스트로 미니게임 시작 문구를 잘 표시할 수 있게 되었습니다.
  •