초보자도 쉽게 시작하는 Unity 안드로이드 디버깅

SIRYU·2023년 10월 8일
0

Unity

목록 보기
1/4
post-thumbnail

본 게시글은 유니티 2021.3.x LTS 버전을 기준으로 작성하였습니다.

들어가기에 앞서

이 글은 가급적 안드로이드 디버깅에 관해서 다룰 예정이기 때문에 빌드 설정에 관해서는 자세히는 다루지 않습니다. 안드로이드 빌드 설정에 관한 것은 자세한 사항은 다른 게시물을 참고하시길 바랍니다.

추가로 디버깅이란 버그를 찾고 수정하는 일련의 과정들을 모두 포함하지만, 여기에서는 버그를 찾는 방법, 즉 로그를 찍었을 때 그 로그를 확인하거나, 시스템 혹은 유니티에서 제공하는 경고 및 오류를 확인하는 방법만을 제시합니다.

이 글은 기본적으로 유니티 개발을 할 줄 알며, 로그를 찍고 에디터에서 확인하여 기본적인 디버깅을 할 수 있지만, 안드로이드 디버깅에 대해서는 낯선 사람을 대상으로 합니다.

Unity 안드로이드 빌드 설정하는 법

우선은 사전에 안드로이드 빌드 툴의 설치가 필요합니다.

유니티 허브에서 사용할 엔진 버전의 옆의 톱니바퀴를 선택하시고

안드로이드 빌드 서포트를 체크하셔서 설치를 합니다.
사진은 22 LTS이지만, 실제로는 21 LTS로 합니다.
라이센스 동의가 있는 경우 수락하시고 설치하시면 됩니다.

에디터에 들어가셔서 왼쪽 상단의 왼쪽 상단의 File > Build Settings 혹은 Ctrl + Shift + B를 입력하여 빌드 세팅을 엽니다.

여기서 상단의 사용할 씬들을 체크해주시고, 타이틀 씬이 될 씬을 가장 위로 설정해주세요.

그리고 Platform에서 Android를 선택하고 오른쪽 하단에 표시되는 Switch Platform 버튼을 클릭합니다. (현재 사진에는 Build 버튼)

이러면 이제 기본적인 안드로이드 빌드를 위한 세팅은 끝났습니다.
나머지 세부사항은 왼쪽 하단의 Player Setting에 들어가면 다음과 같은 화면을 확인 할 수 있습니다.

여기서 안드로이드 아이콘을 클릭하면 사용할 아이콘이나 타켓 안드로이드 버전 등을 설정 할 수 있습니다.

여기에 관한 자세한 사항은 다루지 않습니다.

그러면 이제 여러분들이 안드로이드 게임을 만들었다고 가정하고 디버깅을 하는 방법을 알아봅시다.

가장 일반적이고 권장되는 방법(ADB를 통한 방법)

유니티에서는 ADB를 통해 디버깅을 할 것을 권장하고 있습니다.
그런데 솔직히 ADB는 기본적으로 CLI 기반이라 보기가 불편하고, 입문자들 입장에서는 조금 다가가기 어려운 방법입니다.

여기서 조금 더 나아가면 안드로이드 스튜디오와 연동하는 방법이 있습니다.
안드로이드 스튜디오에서는 로그 필터링이나 실제 기기 연결, 에뮬레이터 실행 등을 더욱 편하게 할 수 있지만, 여전히 연동을 해야 한다는 불편함은 남아 있습니다.

그래서 여기서는 설명하지 않을 예정입니다.

Android Logcat 패키지를 사용하는 방법

유니티에서는 이러한 불편함을 해소하기 위해 자체적으로 ADB Logcat과 유니티를 연동해주는 패키지를 제공하고 있습니다. 기본적으로 설치가 되어 있지는 않고, 추가적으로 설치를 해야합니다.

에디터 화면에서 상단의 Window > Package Manager를 들어간 후,
상단의 Packages : In Project라고 써져 있는 곳을 클릭해서 Unity Registry로 바꾼 후, Android Logcat을 찾아서 설치해줍니다.

그 다음으로는 스마트폰에서 개발자 옵션 > USB 디버깅을 승인해줍니다.
이것은 스마트폰마다 설정 방법이 조금씩 다르니 본인 기종을 직접 검색하셔서 하시길 바랍니다.

여기가지 완료가 되었다면 Android Logcat 패키지를 켜봅시다.
Android Logcat은 Windows > Analysis > Android Logcat으로 열 수 있습니다. 혹은 Alt+6으로 빠르게 열 수도 있습니다.

그러면 다음과 같은 창을 확인 할 수 있는데 상단의 Auto Run 옆에 바로 연결이 되어 있을 수도 있고, 연결이 되어 있지 않으면 탭을 클릭해서 연결 옵션을 확인하여 연결합니다.

그러면 이제 빌드를 해봅시다. File > Build Settings에 가서 Run Device를 연결한 장치로 설정하고, Build And Run을 합니다.

그리고 Android Logcat에 가서 확인하면 다음과 같은 화면을 볼 수 있습니다.

너무 많은 양의 정보가 나와서 보는게 조금 불편 할 수 있습니다.
그런 경우에는 입맛에 맞게 필터링을 해줍시다.
런타임 에러만 보고 싶다고 하면 Priority를 Error로 설정한다던지, 태그를 Unity만 체크한다던지 하여 활용하시면 되겠습니다.

유니티 에디터에서 제공하는 방법

위에서 언급된 Android Logcat 패키지는 훌륭합니다. 기능적으로도 ADB Logcat과 완전히 동일하고, 메모리 캡쳐도 하여 볼 수 있습니다.
그럼에도 여전히 투머치합니다. ViewRootImpl@어쩌구저쩌구는 태그 필터링도 안 되고, 유니티 스크립트에서 작성한 로그(Debug.Log로 작성한)만 보기는 여전히 불편합니다.

유니티 스크립트 상의 로그만을 보고 싶다고 하면, 이 방법이 가장 최적의 방법일 것입니다. 이 역시 마찬가지로 내부적으로 Android Logcat과 연결되어 있지만, 유니티 에디터의 콘솔을 통해서 보여줍니다.

설정하는 방법은 다음과 같습니다.
File > Build Setting로 빌드 화면을 띄워주시고, Run Device에 실행 할 장치를 잡아줍니다.

Development Build와 Script Debugging에 체크해줍니다.
Wait For Managed Debugger는 연결된 장치에서의 어플리케이션 실행을 스크립트 디버거가 연결 완료 할 때 까지 대기합니다. (보통 오래 걸리지 않습니다. 체크 하시는 걸 추천합니다. 시작하자마자 오류가 발생하는 경우에 온전히 잡아 낼 수 없습니다. 물론 그런 일은 없어야 하겠지만)

그리고 Build And Run을 눌러 빌드합니다.

그 다음 유니티 에디터에서 콘솔 탭으로 가서

Full Log를 체크해주고
Editor 탭에서 하단에 표시된 연결된 기기를 클릭해줍니다.

그리고 테스트를 하다보면

이렇게 Unity 스크립트에서 Debug.Log로 찍은 로그나

유니티 에디터에서 표시되는 일반적인 경고나 에러들도 표시가 됩니다.
하단 설명에 보이듯이 몇 번 째 줄에서 발생을 한 것인지도 확인 할 수 있습니다.
유니티 콘솔에서 여러 같은 로그를 하나로 퉁치는 Collapse도 그대로 사용 할 수 있고, 에러만 표시할지 등의 여부도 쉽게 설정 할 수 있습니다.

상단 설정 버튼에서 Stack Trace Logging에서 설정만 바꿔주면 조금 더 딥한 로깅도 가능합니다.

개인적으로는 이 방법이 정말 접근성도 좋고 직관성이 좋다고 생각합니다.
유니티 입문자들이나 일반적인 소규모 개발팀이라면 이정도로도 충분하다고 생각해서 추천드리고 싶네요.


그럼 오늘은 여기까지입니다. 다들 즐거운 개발되세요.

profile
게임 클라이언트 공부 중

0개의 댓글

관련 채용 정보