Unity

[Unity] 프로젝트 최적화 방법들

빈형임 2023. 3. 29. 02:14

1. 왜 최적화가 필요할까?

  • 성능 개선: 최적화는 프로젝트의 성능을 개선할 수 있습니다. 게임의 프레임 속도가 낮을 경우, 플레이어의 게임 경험이 매우 안 좋아질 수 있습니다. 이러한 성능 문제는 플레이어의 경험을 저해시키고, 게임의 인기를 떨어뜨릴 수 있습니다.
  • 하드웨어 제한 극복: 게임은 다양한 하드웨어에서 실행됩니다. 더 낮은 스펙의 컴퓨터나 모바일 기기에서도 게임이 잘 실행될 수 있도록 최적화가 필요합니다. 최적화가 되지 않은 게임은 하드웨어 제한 때문에 실행이 되지 않을 수도 있습니다.

  • 개발 효율성 향상: 최적화는 개발자들이 작업을 더 효율적으로 수행할 수 있도록 도와줍니다. 최적화를 수행하면 불필요한 작업을 줄이고, 코드와 자원을 더 잘 활용할 수 있습니다. 이는 개발자의 업무 효율성을 높여줍니다.

따라서, 최적화는 게임 제작,개발 과정에서 꼭 필요한 단계입니다. 이를 통해 게임의 성능과 품질을 향상시킬 수 있으며, 플레이어에게 더 좋은 게임 경험을 제공할 수 있습니다.

 

 

2. 어떤 방법들이 있을까?

  • LOD (Level of Detail) 사용: LOD를 사용하면 멀리 떨어진 객체는 상세한 모델링이 필요하지 않기 때문에 더 단순한 모델링을 사용하여 렌더링 할 수 있습니다.

  • 텍스처 압축: 텍스처 압축 기능을 사용하여 텍스처의 해상도를 줄여 메모리 사용량을 줄일 수 있습니다.

  • 배치 (Batching): 배치를 사용하여 오브젝트들의 렌더링을 하나의 배치로 처리할 수 있습니다. 이는 렌더링 호출을 줄여 최적화를 할 수 있습니다.

  • 정점 최적화: 오브젝트의 정점 개수를 최적화하여 렌더링 시간을 줄일 수 있습니다.
  • 적절한 라이팅 설정: 조명 설정이 적절하게 이루어져야 렌더링 속도가 빨라집니다. 너무 많은 조명이나 불필요한 쉐도우는 렌더링 속도를 늦출 수 있습니다.

  • GC Alloc 줄이기: GC Alloc이 많이 일어나는 코드를 최적화하여 메모리 사용을 줄입니다.

  • 적절한 폴리곤 개수: 오브젝트의 폴리곤 개수를 적절하게 설정하여 최적화할 수 있습니다.

  • 트림 (Trimming): 사용하지 않는 코드나 기능을 삭제하거나 비활성화하여 불필요한 메모리 사용을 막습니다.

  • 사용하지 않는 리소스 제거: 사용하지 않는 스크립트나 에셋을 삭제하거나 비활성화하여 불필요한 메모리 사용을 막을 수 있습니다.

  • 사용하지 않는 렌더링 제거: 카메라에서 볼 필요가 없는 오브젝트들의 렌더링을 제거하여 렌더링 속도를 빠르게 할 수 있습니다.

위와 같은 방법들 외에도 많은 방법들을 활용해서 프로젝트의 성능을 향상 시킬 수 있습니다.

 

 

참고하면 좋은 링크들

 

유니티 최적화 관련 문서들 모음집 (Documents of optimization for Unity)

문서들을 여기 저기 따로 공유하려느 번거로워서 유니티 최적화 관련 문서들을 모아두었습니다. 정리는 두서 없이 했고,다만 출처가 유니티 크루인지 아닌지로만 분류하였습니다. 추가적으로

ozlael.tistory.com

 

실무에서 사용하는 성능 최적화 | Unity Blog

몇 개월 전 헤드리스(headless) 모드로 실행 중인 권한 서버 아키텍처가 있는 멀티플레이어 1인칭 슈팅 게임의 프로젝트를 검토한 적이 있습니다. Unity 메모리 프로파일러를 이용하여 메모리 캡처

blog.unity.com