본문으로 건너뛰기
CHOI HONGSU
1 min read

UI 아틀라스 정리

MainTown / MainHud에서 사용하지 않는 컨텐츠 UI가 함께 로드되는 문제를 분석하고, 공용 UI와 컨텐츠 UI를 Atlas 단위로 분리해 기본 화면의 로딩 리소스 범위를 줄인 작업입니다.

이 작업에서는 기본 화면에서 항상 필요한 UI와 특정 컨텐츠에서만 필요한 UI를 분리했습니다. MainHud는 기본 UI 중심으로 유지하고, 여러 화면에서 재사용되는 리소스는 공용 Atlas로 분리했으며, 스매쉬패스 / 상세뷰 / 프로필처럼 특정 화면에서만 필요한 UI는 컨텐츠별 Atlas로 구성했습니다. 목표는 Atlas 개수를 무조건 줄이는 것이 아니라, 기본 화면이 항상 부담해야 하는 UI 텍스처 범위를 제한하는 것이었습니다.

Problem

기존 UI Atlas는 폴더 단위로 묶이는 구조였기 때문에, 실제 화면에서 사용하지 않는 UI 리소스가 MainTown / MainHud와 함께 로드될 수 있었습니다.

특히 MainTown은 게임 진입 후 자주 접근하는 기본 화면이기 때문에, 컨텐츠 UI가 계속 추가될수록 Main Atlas의 크기와 기본 로딩 비용이 함께 증가하는 문제가 있었습니다.

이 구조에서는 특정 컨텐츠에서만 사용하는 UI도 기본 화면 진입 시점에 함께 메모리에 올라올 수 있어, Atlas 사용 범위를 다시 정리할 필요가 있었습니다.

Implementation

  1. 01

    아틀라스 구성

    로비(Lobby) 아틀라스 구성

    MainHud 기준 정리

    먼저 MainTown / MainHud에서 항상 필요한 UI 리소스를 기준으로 Atlas 범위를 다시 잡았습니다.

    기본 화면에서 항상 노출되는 UI만 MainHud에 유지하고, 특정 컨텐츠에서만 사용하는 리소스는 MainHud Atlas에 포함하지 않는 방향으로 정리했습니다.

    이를 통해 MainTown 진입 시점에 불필요한 컨텐츠 UI가 함께 로드되는 구조를 줄였습니다.

  2. 02

    TownMain을 기반

    컨텐츠별 Atlas 구성

    스매쉬패스, 상세뷰, 프로필처럼 특정 화면에서만 필요한 UI는 MainTown / MainHud와 분리해 컨텐츠별 Atlas로 구성했습니다.

    이렇게 하면 기본 화면 진입 시점에는 MainHud와 공용 Atlas 중심으로 로드하고, 컨텐츠 UI는 해당 화면에 진입할 때 필요한 만큼만 로드할 수 있습니다.

    결과적으로 컨텐츠가 추가될수록 Main Atlas가 계속 커지는 구조를 방지할 수 있었습니다.

공용 ( Vpad, Player, Skill )

Player / Vpad / Icon_Skill

인게임 / 아웃게임 공용 및 리빌드 단위로 분리하였습니다.

로비

MainHud 기준 정리

아틀라스 광장 화면에서 14개 로드 (2048 14장) → 분할 후 (2048 2장)

Conclusion

UI Atlas를 MainHud / 공용 UI / 컨텐츠 UI 기준으로 분리해, 기본 화면에서 불필요한 UI 텍스처가 함께 로드되는 구조를 줄였습니다.

  • MainTown / MainHud는 기본 UI 중심으로 유지
  • 여러 화면에서 재사용되는 UI는 공용 Atlas로 분리
  • 특정 컨텐츠에서만 필요한 UI는 컨텐츠별 Atlas로 분리
  • 컨텐츠 UI 증가가 Main Atlas 크기 증가로 바로 이어지는 구조를 완화

이 작업은 단순히 Atlas를 나누는 것이 아니라, UI 리소스의 사용 범위와 로딩 시점을 기준으로 Atlas 구조를 재정리한 작업입니다.