1.
빌드를 위한 준비로 무엇을 해야할까
(안드로이드 빌드 기준) 간단한 메뉴를 알아볼 것이다
2.
2-1. Platform Setting
여기서 볼 것은 Build App Bundle과 DebugSymbols이다.
Build App Bundle
: 안드로이드 앱을 빌드할 때, Google Play Store에 배포할 수 있는 앱 번들(AAB)형식으로 생성할지의 여부를 결정하는 옵션.
해당 설정을 활성화하면 AAB 형식 파일을 빌드한다. 구글 플레이 스토어에 등록할 때는 필수 체크
AAB?
: 기존에 안드로이드 앱인 APK 형식을 대체하는 새로운 배포 형식.
하나의 번들 파일 내에 다양한 기기구성(화면 해상도 등)에 필요한 모든 리소스를 포함하고, 사용자의 기기에 필요한 리소스만 다운로드하여 설치가 가능한 형태.
장점 - 설치 최적화(사용자에게 필요한 리소스만 다운로드/설치 => 앱 용량 감소 및 설치 시간 단축), 다양한 기기 지원
Debug Symbols
: 체크 후 빌드 시, 난독화를 진행할 때 심볼을 기억하여 zip파일로 빼주고, 구글에 등록할 때 같이 올린다.
=> 앱에서 게임 진행 중, 오류 발생 후 에러를 알려줄 때 어떤 코드에서 오류가 났는지 알려준다! (스택추적, 디버깅 정보 제공)
게임할 때 가끔 뜨는 오류의 크래시 보고서 같은 느낌인 것 같다.
2-2. Player Setting
뭔가 구성요소가 가장 많을 곳이다.
그리고 아마 설정할 것도 제일 많을 것이다.
Icon
: 말 그대로 어플 아이콘. Adaptive/Round/Legacy로 나뉘어져 있다.
> 종류
Adaptive : Foreground(전면) / Background(배경)로 나뉘어져 있다. 반드시 Legacy도 설정해줘야한다.(안드로이드 8.0 이전 기기를 위함)
Round : 원형 아이콘. 해당 요소를 적용시키면 앱 아이콘을 원형으로 표시할 수 있게 된다. (기존 사각형 외의 추가적인 스타일 제공)
Legacy : 가장 기본적인 아이콘. 해당 앱을 사용하는 기기가 Adaptive와 Round 아이콘을 대응하지 못할 때 가장 기본으로 사용하게 된다.
IOS에서는 아이콘의 크기를 1024*1024,
안드로이드에서는 아이콘 크기를 516*516으로 사용하지만, 둘 다 빌드할 때는 편의상 1024*1024로 맞춘다고 한다.
Resolution and Presentation
Rosolution
- Run Without Focus
: 포커스(즉, 앱이 주 사용 어플 상태)가 아니라도 작동하는가?를 의미한다.
요즘 어플에는 분활화면, 팝업화면이 기본이다. 이때, 현재 사용자가 '사용하고 있는' 어플을 Focus상태라고 하고, '현재 사용되지 않는' 어플은 포커스 상태에서 해제되었다고 본다.
이러한 상태에서, 어플이 '정상적으로 작동하는가'를 묻는 항목이다.
필수로 체크할 필요는 없고, 게임의 성질에 따라 맞추면 된다. (지금도 게임따라 분활화면까지는 지원하는데 다른 곳 포커스 잡으면 바로 튕기는 게임이 있다)
Resizeable Activity
:사이즈, 즉 해상도가 바뀌는 걸 허용하는가?의 항목이다.
위의 분활화면, 혹은 팝업화면을 사용하면 필수적으로 해상도가 망가진다. 기존에 설정한 휴대폰 사이즈와 전혀 다른 사이즈가 되며, 그 비율도 이용자가 마음대로 조절할 수 있기 때문,
Render outside safe area
: 휴대폰의 전면 카메라 부분을 세이프 영역으로 지정하는지 여부
요즘 휴대폰의 전면카메라는 화면 위에 점으로 덩그러니 있다. 이 카메라 영역에 UI가 있으면 가려지기 때문에, 해당 영역을 SafeArea로 설정하여 그 부분에는 UI가 닿지 않도록 처리하는 것이다.
(그냥 배경같은 건 들어가도록 해서, 화면이 넓게 보이도록 만들곤 한다.)
내 휴대폰의 경우 저기 시간이나 휴대폰 잔량이 있는 부분에 휴대폰 전면 카메라가 위치한다.
그리고 그 범위 아래로 UI가 배치되어 전면 카메라가 UI의 영역을 침범하지 않도록 처리한 것을 볼 수 있다.
가로모드로 돌리면 카메라가 있는 부분이 일정 범위 띄워지는 것이 보인다. (상단 사진은 좌측에 휴대폰 카메라가, 아래 사진은 오른쪽에 휴대폰 카메라가 놓인 상태이다.)
아예 반대로 돌리면 채팅창쪽에 카메라가 위치하게 되므로, 하단이 살짝 띄워져 UI가 형성된다.
그리고 이 회전과 관련된 위치가 바로 여기.
Orientation
Portrait : 세로모드만 허용함
Portrait Upside Down : 세로 역방향 고정
Landscape Right/Left : 가로모드 오른쪽/왼쪽 고정
Auto Rotation : 유저의 기기 회전에 맞춰 자동으로 회전시킴
즉, 아래의 Auto Rotation을 켜고, 아래의 네 항목을 전부 켜두면 마비노기 모바일처럼 4방향 모두 대응하는 게임이 된다.
(단점: 고정하는 옵션을 따로 만들어주지 않으면 핸드폰 방향이 기울어지면 신나게 기울어진다. 어지러워질 수 있음.)
내 게임은 세로모드만 지원하는 게임이라면 Portrait만 켜거나 Portrail Upside Down 까지만,
가로모드만 지원하는 게임이라면 Landscape 관련 옵션만 켜면 된다.
OtherSettings
AutoGrapics API
: 대응하는 API를 지정해줄 수 있다.
요즘 사용하는 갤럭시(삼성폰)은 Vulkan을 지원하며, OpenGLES3은 예전 기종에서 주로 사용한다.
하지만 사용자가 많으면 좋으므로, 보통은 둘 다 넣는다. (아예 지원을 못할 정도가 아니라면)
Texture Compression Formats
보통 ASTC를 사용한다. 구기종은 ETC를 주로 사용하지만, ASTC를 사용한다고 실행이 안되지는 않는다.
(잠시 사양 맞추는데 시간은 걸린다고 한다.)
3.
마침 휴대폰에 바로 실행해서 대응해볼만한 게임이 있어서 실제 게임 빌딩시 필요한 것 중 가장 기본 적인 것 몇 개만 살펴보았다.
사실 중요한 내용은 뒤에도 더 있는데, 시간이 부족하므로 여기까지.
나머지는 하위에 우선 임의로 올려두는 것으로 마무리!
'Unity_본캠프' 카테고리의 다른 글
[내일배움캠프 63일차] 빌드 시 오류의 원인2 (2) | 2025.07.08 |
---|---|
[내일배움캠프 62일차] 빌드 시 오류의 원인 1 (0) | 2025.07.07 |
[내일배움캠프 60일차] 스킬...어떻게 쓰지...? (0) | 2025.07.03 |
[내일배움캠프 59일차] Data를 어떻게 관리하고 있나 정리해보자 (0) | 2025.07.02 |
[내일배움캠프 56일차] PlayerPrefs와 Json저장의 차이 (0) | 2025.06.27 |