개요
2019. 7. 25. 23:15ㆍ무한 스크롤 뷰
수집형 게임은 인벤토리가 거의 필수적으로 등장합니다. 하지만 유저가 소유하고 있는 항목을 모두 생성하면 개수에 따라 지연 현상과 추가적인 메모리가 요구됩니다. 이런 부분을 최적화하기 위하여 제작해보기로 했습니다.
NGUI에서 어떤 문제점으로 인해 지연이 걸리는가요?
NGUI의 UIScrollView 스크립트의 bounds를 살펴보면 mBounds를 계산하는 부분이 있습니다.
이 함수를 F12키를 눌러서 따라가다보면 마지막으로 만나는 CalculateRelativeWidgetBounds 함수가 있습니다.
이 함수의 마지막 구현 부분을 살펴보면 다음과 같은 for문이 존재합니다.
이 for문을 살펴보면 자식의 개수만큼 재귀 함수를 호출하고 재귀 함수를 통하여 또 자식의 개수(자식의 자식의 개수), 이런 식으로 for문과 재귀를 반복하면서 호출하게 됩니다. 즉 항목의 개수와 항목에 자식의 개수가 많으면 많을 수록 생성에 대한 지연 시간이 걸립니다.