본문 바로가기
3Dsoftware/Unity 3D

TriggerStay-compareTag() 병목현상

by wonilmax 2020. 12. 10.

Play시 어느정도 시간이 지나면 프레임 저하와 뚝뚝 끊기는 렉 (병목) 현상이 발생함을 감지 하였고, 이와 같은 문제를 찾는 과정에서 OnTriggerStayother.gameObject.Tag = "Player" 이 부분인 문제가 됨을 감지하였다. 이 방법은 느리고 쓰레기를 많이 생성한다고 한다.

 그림과 같이 수정후 병목 현상은 사라졌다. 유니티 프로파일러를 사용하여 이러한 부분을 확인할 수 있다.

 

유니티에서 game Object에서 문자열을 가져오기 위해 문자열의 복사본을 생성합니다. 복사본이 생성되기 때문에 GC(Garbage Collect)가 필요하고 GC로 인해 성능이 떨어지게 된다고 합니다. "Unity 5 Game Optimization by Chris Dickinson"에 따르면 CompareTag() 메서드를 사용하는 것이 최대 27%까지 성능 향상이 가능하다고 합니다.

https://play.google.com/store/apps/details?id=com.wonilmax.daisia