목록프로그래밍/ㄴ이슈 (36)
2019.2.15f버전 기준 발생한 이슈에 대해 공유합니다. 몬스터를 피격시 몬스터의 머리 위에 TextMeshPro로 체력을 표기해주도록 하고 있습니다. 기본적으론, 체력이 보이지 않다가 피격을 당하면 그때 체력바를 Enable해 표기해줍니다. 이때, 씬전환 후 최초로 TextMeshPro를 Enable하는 경우, PlayerLoop의 점유율이 80%가량 치솟으며, 아주 짧게 렉을 유발했습니다. 원인을 살펴본 결과, TextMeshPro의 Activate와 함께 다량의 GC콜이 발생하는 것을 확인했습니다. 일단 임시방편으로 해결을 위해 씬에 빈 TextMeshPro 객체를 하나 두어, 장면 전환시 미리 Text객체가 로딩되도록 해주었습니다.
유니티 2017.2이하 버전 혹은 5.x를 사용하는 경우 구글 정책의 변경으로 TargetAPI Level을 28이상으로 설정해줘야 하는 문제에 대응하기 위해 고생을 할 것이다. 2019년 8월부터 32비트의 경우 신규 앱 등록을 못하고, 11월부터는 API28이하는 기존 출시 앱이라도 업데이트를 못하게 된다. 그리고 2021년 11월부터는 32비트 앱에 대한 모든 출시/업데이트의 지원을 중단하게 되므로 미리미리 대비하도록 하자 그래서 이번 글에서는 Unity에서 Latest Build Target이 27미만인 Unity버전을 사용하는 분들을 위해 강제로 BuildTarget버전을 지정하는 방법에 대해 포스팅하겠다. 1. Unity빌드 설정을 Gradle로 변경 Unity의 BuildSetting에서 B..
Android플랫폼의 Unity에서 .mp4등 미디어 파일을 재생해야 할 일이 있을 것 이다. 게임 실행시 인트로에서 동영상을 재생시킨다든가, 튜토리얼을 영상으로 제공한다든가 등 사용되는 곳이 많다. 프로젝트가 마무리 단계에 접어들어, shell command를 통해 빌드를 자동화 하는 중 처음보는 현상을 마주치게 되었다. E/Unity: AndroidVideoMedia::VideoDecoder::Blit failed. Decode shader probably unsupported. 원래, 게임 설치 후 최초 실행하면 인트로 영상이 나와야 할 타이밍에 영상이 나오지 않고 검은 화면만 노출되는 현상이었다. 자동화 빌드에 문제가 생겼나? 하고 원인을 파악해보니 다음과 같았다. - Unity Editor를 통..
출근 하자마자 클라이언트 앱이 뻗는 이슈를 제보받았다. 발생 시점을 조사해보니 캐릭터가 다리를 지나가면 해당 다리가 뒤따라오며 무너지는 연출이 발생하는 시점에서 간헐적으로 해당 이슈가 발생했다. 에러 구문 중 핵심은 다음과 같다. transform.position assign attempt for 'monster_agent(Clone)' is not valid. Input position is { Infinity, Infinity, Infinity }. UnityEngine.AI.NavMeshAgent:Warp(Vector3) ... ... CalculatePolygonPath: invalid input position(s). Source position { Infinity, Infinity, Infin..