Unity

[TIL] Unity 게임 최적화 방법 _ 렌더링 최적화

unihee1 2025. 3. 25. 20:33

1.  최적화란?

게임의 성능을 향상시키기 위해 자원을 효율적으로 사용하는 과정으로 같은 게임을 더 적은 연산으로 실행되게 만드는 것이 목표이다.

 

2 최적화의 필요성

  • 게임의 플레이 경험(UX)을 개선하는 핵심 요소로 최적화를 하면 다양한 플랫폼에 대응할 수 있기 때문에 더 넓은 유저층 확보가 가능하며 게임 시장에 경쟁력이 생긴다.
  • 불필요한 연산을 줄이기 때문에 배터리 발열 및 소모를 해결할 수 있다.
  • 최소한의 데이터만 주고 받아 서버 비용을 절감할 수 있고 서버의 안정성이 높아진다.
  • 코드가 효율적으로 동작해서 유지보수가 쉬워지고 확장성이 좋아져서 업데이트가 원활해진다.

이렇듯 최적화는 선택이 아니라 필수로 게임의 장기적인 생명력을 보장한다.

 

3.  렌더링 최적화

게임 최적화는 크게 두가지로 나눌 수 있는데 그 중 하나가 렌더링 최적화이다.

렌더링 최적화는 GPU와 관련된 작업을 줄이는 방법이다.

 

-  FPS 제한 걸기

FPS는 초당 프레임 수로 게임 화면이 1초에 몇 번 갱신되는지를 나타내는 지표이다.

FPS가 높을수록 게임이 부드럽게 보이고 낮으면 게임이 끊기거나 버벅거린다.

하지만 FPS를 너무 높게 잡을 경우 배터리 소모, 과부하, 발열이 심해진다.

따라서 적절한 프레임 수로 제한하는 것이 중요하다.

Application.targetFrameRate = 60; 설정을 통해 프레임을 제한한다.
유저가 직접 최대 프레임 수를 조절할 수 잇도록 옵션을 제공하는 것도 좋은 방법이다.

 

- 유니티 프로파일러

어떤 요소가 CPU를 높은 점유율을 가지는지 확인할 수 있다. 별도로 패키지 매니저에서 설치가 필요하며 유니티 오브젝트 뷰를 통해 텍스처, 랜더 텍스처 등 메모리 점유율이 높은 요소를 파악할 수 있다.

 

- 텍스처 최적화 기법

  • 폰트 최적화
    • 폰트는 메모리를 많이 차지하므로 한 개 정도만 사용하도록 관리 필요하다.
  • POT설정
    • 텍스처 크기를 2의 거듭 제곱(256x256, 512x512)으로 맞추면 최대 압축이 가능하다.
    • POT가 아닌 경우 유니티에서 자동으로 변환하지만 직접 조정하면 용량을 더 효율적으로 줄일 수 있다.
  • 텍스처 크기 조절
    • 2048x2048 를 512x512 등으로 축소하면 메모리 사용량을 크게 절감 할 수 있다.
    • 불필요한 여백 제거 및 스프라이트 아틀라스 활용 시 추가적인 최적화가 가능하다.