태그 보관물: android

야광봉 2

개요

기존에 만들었던 야광봉 앱은 막대모양으로 되어 있어 좀 단순했습니다. 그리고 색상도 정해진 것만 선택할 수 있는 단점이 있었습니다. 야광봉의 모양과 색상을 선택할 수 있도록 하면 좋겠다는 생각이 들어 제작하게 되었습니다.

개발도구

야광봉 2 는 Unreal 로 개발 했습니다. Unity 와 비슷한 점도 있었지만 생각보다 시간이 많이 소요되었습니다. 하지만 Unreal 에 많이 익숙해 질 수 있는 기회였습니다.

과정

휴대전화에 표시될 야광봉의 모양을 먼저 정했습니다. 기본 막대모양, 도형, 여러가지 모양을 추가하기로 하고 간단하게 3D 모델링을 진행했습니다.

설정 화면에서 모양과 색상을 변경하면 미리보기 기능이 있어야 사용자 입장에서 편리할 것 같아 많은 시간을 투자했습니다. UMG 로 설정 화면을 디자인하는 것은 어렵지 않았습니다. 그런데 Mesh 를 미리보기 하는 기능을 넣는 것은 생각보다 쉽지 않았습니다.

UMG에서 Mesh 미리보기

핵심은 SceneCaptureComponent2D 였습니다. Mesh를 캡쳐해서 이미지 형태로 보여주는 방식으로 미리보기를 구현했습니다.

야광봉 2 설정 화면

부가 기능

밝기와 크기도 조절할 수 있도록 해서 다양한 모양, 색상, 크기를 지원하도록 했습니다. 그리고 설정된 사항을 즐겨찾기로 저장해서 쉽게 원하는 형태를 선택할 수 있도록 했습니다. 이전 앱과 같이 잠금 버튼을 추가해서 의도하지 않은 터치가 발생하지 않도록 했습니다.

눈 결정모양

여기에서 앱 정보를 확인하실 수 있습니다. 유료 앱 입니다.

Unreal 안드로이드 패키징 시 필요 없는 권한 제거하기

개요

게임 개발 후 안드로이드 기기를 대상으로 패키징 후 실행해 보면 처음에 여러가지 권한을 요구하는 경우가 있습니다. 분명 게임과는 무관한 것인데 필요 이상으로 많은 항목을 요청합니다.

그 이유는 몇 가지 권한이 기본적으로 부여되어 있어 발생한 것 입니다. 꼭 필요한 항목만 포함하는 방법을 알아보도록 하겠습니다.

중간 파일 내용 확인

Intermediate\Android\arm64\AndroidManifest.xml 파일 내용 일부를 보면 다음과 같이 게임에 필요 없는 권한이 들어 있습니다(arm64 폴더는 대상 플랫폼에 따라 달라질 수 있습니다).

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

이것을 꼭 필요한 권한 WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE 만 포함하도록 변경해 보겠습니다.

ManifestRequirementsOverride.txt 파일

이곳에서 안드로이드 패키지 설정에 대한 설명을 볼 수 있습니다. 그 중 Extra Permissions 항목을 보면 <Project>/Build/Android/ManifestRequirementsOverride.txt 항목에 대한 설명이 있습니다. ManifestRequirementsOverride.txt 파일의 내용으로 대치 된다는 내용입니다.

Extra Permissions 항목에 마우스 커서를 올려보면 나타나는 설명

꼭 필요한 권한만 추가해서 깔끔하게 관리할 수 있습니다. 단순 텍스트 파일이며 필요한 권한을 다음과 같은 형식으로 추가해 주기만 하면 됩니다.

&lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
&lt;uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

이렇게 하면 두 가지 권한만 AndroidManifest.xml 파일에 추가됩니다. 이런 방법으로 필요 없는 권한은 제외하고 꼭 필요한 항목만 추가할 수 있습니다.