✌️문제안드로이드 플랫폼으로 개발할 때에디터에서 어드레서블로 빌드한 모델을 불러오면쉐이더가 분홍색으로 나옵니다 물론 쉐이더 문제는 아닙니다쉐이더는 유니티 기본 내장 Standard쉐이더이니까요 이 문제를 해결 해보겠습니다 🔥해결찾은 해결 방법은 모바일용 그래픽스API로 에디터를 여는 것`OpenGL`이나 `Vulkan`으로 열어주면 됩니다 방법은 2가지가 있습니다 방법 1프로젝트 세팅에서 그래픽스API for Windows를 바꾸는 방법순서까지 바꿔줘야 합니다이렇게 바꾸면 에디터를 다시 시작하라고 알림이 뜨면 다시 시작 해주세요 제대로 적용됐는지는 다시 열렸을 때 상단에 이 부분을 보시면 됩니다이제 다시 테스트 해보면 쉐이더가 정상적으로 출력되는것을 볼 수 있습니다 참고로저는 안드로이드 player..
✌️ 짧은 팁Unity에서 포스트 프로세싱의 Bloom효과를 제대로 쓸려면 [프로젝트 세팅 - 그래픽]에서 Use HDR 옵션을 활성화 시켜줘야한다.하지만 HDR옵션을 활성화 하고 나서 RenderTexture를 사용해보면 아래 그림과 같이 카메라 화면의 배경이 투명처리되지 않는다. 해결하는 방법은 위에서 활성화한 Use HDR 옵션 밑에있는 HDR Mode를 R11G11B10에서 FP16으로 바꿔주는것그러면 이렇게 깔끔하게 배경이 사라지고 Bloom도 여전히 제대로 적용된다. 다만 유니티가 안드로이드 플랫폼에서 HDR옵션 기본 비활성화에 포맷도 R11G11B10 기본값으로 둔 이유가 있지 않겠는가!HDR옵션을 쓰면 안그래도 무거워지는데 포맷을 FP16으로 쓰면 더더욱 무거워진다.꼭 필요하다면 성능 ..
🚩개요 회사 프로젝트에서 특정 씬을 갔다오면 Input.GetMouseButtonDown() Input.GetMouseButton() Input.GetMouseButtonUp() 3총사가 안먹혔다. 찾고보니 골때리는 해결법이라서 기록해둔다. 🔥본문 결론부터 말하자면 원인은 LeanTouch라는 에셋이었다. 이 에셋의 LeanTouch 컴포넌트를 보면 Disable Mouse Emulation 이라는 bool 변수가 있다. 이 변수가 어떤짓을 해버리냐면... 바로 Input.simulateMouseWithTouches 를 false로 만들어버린다...!! 저게 false가 돼버리면 터치 입력을 마우스 입력으로 받아들이질 않는다. (기본값은 당연히 true) 심지어 LeanTouch는 기본값으로 Input...
개요 유니티 프로젝트에 광고를 넣기 위해 구글 애드몹SDK를 넣어서 구현했다. 우리 프로젝트는 기본적으로 가로화면 이지만 미니게임에 따라서 Screen.Orientation 을 건드려서 화면을 강제 회전을 시켰다. 그런데, 화면 회전 이후에 광고를 호출하면 광고가 호출되지 않는 버그가 있었다. (특히 iOS에서) 우여곡절끝에 발견한 해결법을 기록한다. 본문 먼저 해본 방법들은 이렇다. 광고 SDK 초기화를 화면을 돌린 이후에 다시 호출 (MobileAds.Initialize();) => 효과는 없었다. 광고를 호출하기 전에 화면을 가로로 다시 회전시키고 (앱이 시작할 때 가로였으니까) 광고가 끝나면 광고 호출 전 Screen.Orientation을 다시 복구 =>처음엔 되나 싶었지만 완벽하지 못했다. 그..
Firebase를 이용하여 구글이나 애플로그인 등등을 할 때 auth.SignInWithCredentialAsync(credential).ContinueWith(task => { ... }); 이런 콜백을 거치게 되는데 잘보면 콜백 타입이 Task이다 즉, 콜백이 메인스레드에서 돌아가지 않을 수 있다는 것. 😮 서브 스레드에서 돌아가면 어떤 문제가 일어나나요? - 유니티는 서브 스레드에서 유니티의 API를 호출할 수 없다. 에러와 함께 스레드가 종료돼버리고 try, catch문으로 에러를 출력하지 않는다면 콘솔에 에러도 출력되지 않는다. 그래서 이 경우엔 2가지 방법이 있다. 1. bool변수로 플래그를 세워서 Update()문에서 플래그 체크 후 이후 작업 진행 2. 큐에 액션을 담아놓고 외부 클래스에..
개요 프로젝트에서 PVP구현을 위해 서버통신을 작업하던 중 위치 동기화같이 빠르게 주고받아야 하는 데이터의 패킷들이 일부 누락되는것 처럼 보이는 문제가 발생했다. (서버는 자바스크립트) 완벽해결은 아니지만 해결방법을 기록한다. 문제 위 설명대로 패킷이 누락되는것처럼 A클라이언트에서 보낸 패킷 일부가 B클라이언트에 도착하지 않았고, 서버쪽에서 디버그를 해봐도 서버에조차 패킷이 도착하지 않았다. 처음엔 통신문제인줄 알아서 여러시도를 해봤지만 전부 아니었고 답은 네이글 알고리즘 때문이었다. 네이글 알고리즘이란 간단히 이해한대로 적어보면 패킷이 만들어지는대로 보내지 않고 패킷을 버퍼에 보관하다가 ACK를 수신하면 나머지 패킷들을 한번에 전송해줘서 결론적으로는 통신량을 줄이는 방법이다. 해결 사실 명쾌한 해결은 ..