털털한 개발자, 긔저기의 개발공간

Unity로 개발을 하게 되면 많은 사람들이 안드로이드, 아이폰 등등

 

모바일 플랫폼의 출시를 목표로 두고 게임을 만들 것이다. 

 

그렇게 되면 많은 기기에 맞춰서 개발을 해야 하는데 생각보다 꽤 잡기힘든 문제가 발생하기도 한다...

 

특히 어떤 기기에서는 잘 돌아가고 어떤 기기에선 잘 돌아가지 않는 상황이 발생하면 머리 터지기 직전...

 

 

이번 문제는 몇몇 기기에서 잘 출력되던 Image, SpriteRenderer 가 특정 기기에서 출력이 되지 않는 문제다.

 

씬이 아무것도 출력이 되지 않고 검은색으로 나온다.... (Ui Button은 잘 나오는 것 같다.)

 

 

나의 경우 갤럭시 노트 Pro 12.2에서 문제가 발생했는데, 디버깅을 해봐도 잡을 수 없는 문제였다..

 

생각보다 문제는 간단했는데, 카메라의 Allow HDR이 켜져서 발생한 문제였다.

 

카메라 컴포넌트

카메라를 보게되면 기본적으로 Allow HDR이 켜져있다. 그렇기에 별 문제가 없을것이라 생각했는데

 

어떤 기기는 HDR를 지원하지 않는지(?) 아니면 Unity 버그인지 Allow HDR을 켜기만 해도 랜더링이 되지 않는다.

 

해결방법은 아주 간단한데 그냥 Allow HDR을 끄면 된다.

 

유니티 이슈트래커를 안찾아봤으면 해결하기 힘든 버그였다...

 

https://issuetracker.unity3d.com/issues/android-black-screen-is-rendered-when-hdr-is-enabled-on-certain-device-using-mali-t720-gpu

 

Unity IssueTracker - [Android] Black screen is rendered when HDR is enabled on certain device using Mali-T720 GPU

How to reproduce: 1. Open the attached "ReproHDR" project and switch to Android 2. Make sure that "Allow HDR" is enabled on Main Cam...

issuetracker.unity3d.com

정말 찾기 힘든 버그라면 유니티 문제일수도 있으니 이슈트래커를 한번씩 꼭 찾아보는 습관을 가지자!