Unreal 5.6 안드로이드 배포판 터치되지 않는 문제 해결

개요

이전 버전으로 개발된 프로젝트를 5.6 으로 변경해서 안드로이드용 패키지 파일을 빌드해서 실 기기에서 테스트 한 적이 있었습니다. 이상하게도 전혀 터치가 되지 않아 게임 진행이 불가능 했습니다. 도저히 해결할 수 없어서 다시 원래의 버전으로 되돌렸습니다.

현상

에디터에서는 문제 없이 동작하는데 안드로이드용 패키지로 빌드해서 설치하면 발생하는 문제였습니다. 터치가 전혀 일어나는 것은 아니었습니다. 로그를 추가해서 확인해보니 터치 이벤트는 발생하는데 게임내에서 의도한 동작은 전혀 반응이 없었습니다.

해결

다른 문제에 관한 자료를 검색하다가 우연히 해결 방법을 찾았습니다. 결론은 Project Settings > Platforms > Android > Input > Allow Bluetooth controllers 항목을 체크하면 제대로 화면 터치가 동작하여 정상적으로 게임이 동작하게 됩니다. 필자의 경우 5.6.1 버전이었습니다.

Allow Bluetooth controllers 항목 체크
Allow Bluetooth controllers 항목 체크

Allow Bluetooth controllers 항목이 언제부터 있었는지 확인하지는 못했습니다. 화면 터치가 되지 않는 부분과 관계가 없어 보이는데 이 항목을 체크하고 다시 빌드/배포하면 정상적으로 동작하는 것을 확인할 수 있었습니다.

테스트 할 때는 잘 되는데 Google Play 에 올렸을 때 문제가 있다는 글도 있었는데 필자의 경우에는 그런 문제가 발생하지는 않았습니다.

혹시 모르니 실 기기에서 테스트 시 문제가 없는 것을 확인하신 후 Google Play 에 올리신 것을 받으셔서 다시 확인해 보시기 바랍니다.

필자와 같은 문제를 겪으신 분들에게 도움이 되었으면 좋겠습니다.

유니티(Unity) 보안 취약점 관련 조치

개요

10월 초쯤 Unity에서 다음의 제목으로 메일이 왔습니다.

Unity 플랫폼 보호: 게임과 앱 보호를 위해 즉시 조치가 필요합니다

내용을 확인해 보니 Unity 2017.1 이상 버전으로 Android 앱을 개발, 배포한 경우 문제가 되므로 조치하라는 내용이었습니다. 게임 개발 엔진에 취약점이 발견되어 메일까지 보냈다는 것은 심각한 문제가 아닐까하는 생각이 들었습니다. 그러나 아직 피해 사실이 보고 되지 않았다는 내용을 보고 당장 조치는 필요하지 않겠다고 생각했습니다.

다량의 메일

얼마 지나지 않아 메일이 많이 왔습니다. 좋지 않은 징조라고 생각했는데 다음과 같은 제목으로 메일이 왔습니다.

조치 필요: 앱이 Google Play 정책을 준수하지 않음

Unity로 제작해서 Google Play 에 배포한 앱과 게임이 몇 개 있었는데 모두 같은 내용이었습니다. 구글에서도 심각한 문제라고 생각하고 조치를 취한 것 같았습니다.

문제해결

이번 문제와 관련된 사항과 조치 방법은 이곳에서 확인하실 수 있습니다. 요약하자면 Unity 패치를 받아 업데이트 한 후 프로젝트를 다시 빌드해서 배포하라는 것 입니다.

필자는 2022.3.62f1 버전에서 빌드해서 배포 했습니다. Unity Hub 을 실행해 보니 해당 버전의 패치가 있었습니다. 2022.3.62f2 버전으로 업데이트 했습니다. 그 다음 프로젝트를 업데이트 된 버전으로 열었습니다. 이전 버전은 보안 문제가 있다는 메시지가 나타나서 사용하면 안된다는 것을 알 수 있습니다.

모든 프로젝트를 새로운 버전으로 변경
모든 프로젝트를 새로운 버전으로 변경

버전 코드, 번호를 업데이트 한 후 Google Play 올렸습니다. 앱이 업데이트 된 것을 확인하고 혹시 몰라서 문제가 해결되었다는 알림이 올 때까지 기다렸습니다. 최초로 다시 올린 앱이 문제가 해결되었다는 알림을 받고 경고가 사라진 것을 확인 후 나머지 것도 조치했습니다.

느낌 점

게임 엔진에 보안 문제가 있고 이것을 명시적으로 알리고 조치를 취하도록 한 것은 잘한 것이라고 생각 들었습니다. 방치하거나 숨겨서 문제가 되는 것 보다는 먼저 대응하는 것이 Unity, 개발자, 사용자 모두에게 도움이 되는 것이라 생각되었습니다. 처음 겪는 일이다 보니 좀 황당하기도 했습니다. 하지만 조금 생각해 보니 게임 엔진도 일종의 프로그램이라서 그럴 수 있겠다는 생각은 들었습니다.

다만 개발자/개발사 입장에서 보면 번거로운 작업임에는 분명했습니다. 필자의 경우 규모 자체가 그리 크지 않고 간단한 게임들이라서 조치가 비교적 간단했던 것 같습니다. 그런데 이것도 개수가 많아지니 꽤 번거로운 작업이었습니다. 규모가 큰 프로젝트의 경우 조치하기가 꽤 어려울 수 있겠다는 생각이 들었습니다.

정말 많은 앱과 게임이 영향을 받았을 것으로 생각되는데 게임 엔진 개발사에서 조금 더 주의를 기울여 주었으면 좋겠습니다. 모든 것을 완벽하게 만들 수는 없지만 수 많은 개발자/개발사에 영향을 주는 중요한 부분 만큼은 만전을 기해 주었으면 좋겠습니다.