게임을 돌리다 보면 어느 한 장면에서 좀 버벅거리는 경우가 있음.
그럴 땐 CPU를 누가 잡아먹는지 찾아서 스크립트를 최적화 할 필요가 있다.
특히 스크립트에서 void Update()를 남용하게 되면 그런 현상이 꽤나 있음.
Window>Analysis>Profiler로 찾아들어가도 되고, Ctrl+7 을 눌러도 뜬다.
그러면 뭐가 얼마나 차지하는지 살펴보자.
이것저것 클릭해보면 대충은 감을 잡을 수 있음.
CPU를 누가 많이 먹는지 보자.
Others는 유니티를 돌아가게 하는 부분이라서 어쩔수 없는 부분이고,
Script가 혹시라도 중간중간 튀는지 확인해볼 필요가 있다.
주기적으로 Script의 CPU Usage가 높아졌는데, 아래 Hierarchy 탭에서 찾아들어가니 TrainBullet.cs의 Update()가 CPU를 먹고 있다. (TrainBullet은 게임 내의 자동 사냥 기능)
보면 GC Alloc가 1.3MB라고 되어있는데, 주기적으로 GarbageCollector(GC)에서 소화시켜준다.
Project Settings의 Other Setting에서 Use incremental GC를 체크해두면
GC를 한번에 처리하지 않고, 여러번에 나눠서 처리하기 때문에 CPU에 Usage에 끼치는 영향을 최소화 할 수 있다.
'유니티' 카테고리의 다른 글
[유니티] DOTween이용해서 Panel 깜빡이기 (0) | 2023.03.09 |
---|---|
[유니티] EASY SAVE와 GPGS를 이용하여 클라우드 저장하기 (0) | 2023.03.05 |
[유니티] 블루투스 헤드폰, 이어폰, 스피커 사용 시 소리 멈추는 현상 (0) | 2023.03.01 |
[유니티] GameObject 머지(merge), 합치기 구현하기 (0) | 2023.02.24 |
[유니티 설정] 구글 GPGS를 이용하기 위해 proguard.txt 설정 (0) | 2023.02.24 |