2021년 8월 11일 수요일
Addressable 1.18.15 번들 갱신이 되는 특이한(?) 경우
2021년 8월 5일 목요일
Addressable 1.16.19 Bug
Addressable 1.16.19 Bug
2021년 8월 2일 월요일
GC Alloc를 줄이자
GC Alloc를 줄이자
-해당 코드 프로파일링 결과-
2021년 7월 21일 수요일
Unity Text(UIVertex[]) Memory Leak
Unity Text(UIVertex[]) Memory Leak
2021년 7월 18일 일요일
Unity 2019.4.28f 버그?
이번에 유니티 버전을 4.22f에서 4.28f로 올리면서 지난버전에서는 없었던 크래쉬 이슈가 다량으로 올라왔다.
확인 결과 ios나 android 스마트폰에서는 해당 증상이 없었으나 에뮬레이터에서 발생한 것을 알 수 있었고 매번 크래쉬가 나지는 않고 간혈적으로 발생했다.
크래쉬 로그를 뽑아서 확인 해보니깐 모두 같은 함수를 타다가 크래쉬가 났는데 유니티 자체 함수에서 발생하는 것을 알 수 있었다 바로 FindObjectOfType 와 FindObjectsOfType였고 매개변수만 다른 몇몇 개로 수정해서 테스트 해봤으나 여전히 크래쉬가 발생했고 결국 할 수 있는 선택지는 해당 함수를 제거하고 같은 기능을 다른 방식으로 구현했다.
그 결과 크래쉬는 발생하지 않았다.
특이한 점은 새로운 프로젝트를 만들어서 해당 함수를 사용했을 때는 크래쉬가 발생하지 않았다는 점인데 무언가 그 타이밍에 돌던 다른 것과 충돌하는 것일 수도 있을거 같긴하다.
아무튼 유니티는 버전이 바뀔 때마다 새로움을 준다.
---
4.28f 업그레이드 이후에 GetPixels 함수에서도 간혈적으로 크래쉬가 일어나 확인중
-21-07-19) GetPixels32 로 바꾼 후에 크래쉬는 제거 됐으나 GetPixels32를 쓰고 있는 다른 스크립트에서 memory leak이 발견되어 추가 확인중
2021년 7월 16일 금요일
Bloom Shader 최적화
Bloom Shader 최적화
2021년 7월 13일 화요일
쉐이더 메모리 최적화
쉐이더 메모리 최적화
쉐이더에는 multi_compile와 shader_feature 라는 기능이 있다.
쉐이더의 베리언트를 나눠서 하나의 쉐이더에서 여러 기능을 구현 할 수 있도록 해주는 것인데 둘의 차이라면 multi_compile는 모든 분기가 빌드에 포함되고 shader_feature 사용중인 분기만 빌드에 포함된다는 것이다.
그러면 shader_feature 만 쓰면 된다고 생각 할 수도 있지만 런타임중에 분기가 바뀌는 경우에는 shader_feature 의 경우 빌드에 포함되지 않았기 때문에 동작이 제대로 되지 않는다.
그렇다고 multi_compile를 전부 쓰면 쉐이더의 베리언트가 배로 계속 늘어 무식하게 커지게 된다.
pc게임이라면 어느정도 사이즈는 신경 쓰지 않을 수 있지만 회사에서 모바일 게임을 개발 중이기 때문에 민감하지 않을 수 가 없었다.