-
유니티 게임개발캠프 TIL 49일차
유니티 최적화 기법
FPS (Frames Per Second)
- FPS는 컴퓨터가 초당 렌더링하는 프레임 수를 의미합니다. FPS가 높을수록 시각적으로 더 부드럽고 성능이 좋아집니다.
- 밀리세컨드 (MS)당 프레임은 한 프레임을 렌더링하는 데 걸리는 시간을 나타냅니다. 값이 낮을수록 빠르게 렌더링되어 성능이 좋습니다.
모바일 최적화
- 모바일 기기에서는 FPS 제한을 걸어주는 것이 중요합니다. 그렇지 않으면 발열이 심해지고 배터리가 빨리 소모되며, 최악의 경우 버벅거림 등의 문제가 발생할 수 있습니다.
이미지 파일 최적화
- Power of Two (POT) 텍스처: 이미지의 크기를 2의 제곱수(예: 128x128, 256x256)로 설정하여 메모리 사용과 성능을 최적화합니다.
배치와 드로우 콜
- **배치 (Batches)**는 GPU에 요청하는 드로우 콜의 수를 의미합니다. 배치 수를 줄이면 성능이 크게 향상됩니다.
스프라이트 아틀라스
- 스프라이트 아틀라스를 사용하여 여러 스프라이트를 하나의 텍스처로 그룹화하면 드로우 콜 수가 줄어들어 성능이 향상됩니다.
스크립트 최적화 기법
- 오브젝트 풀링: 객체를 자주 생성하고 파괴하는 대신 재사용하여 메모리 할당과 가비지 컬렉션 오버헤드를 줄입니다.
- Find 메서드(예: GameObject.Find, FindObjectOfType)와 GetComponent를 자주 사용하지 않습니다. 비용이 많이 드는 작업이기 때문입니다.
- 사용하지 않는 유니티 이벤트 함수인 Update, FixedUpdate, LateUpdate를 제거하여 성능을 절약합니다.
- 불필요한 static 키워드 사용을 피합니다. 이는 메모리 관리 문제와 유연성 감소로 이어질 수 있습니다.
- Camera.main을 자주 사용하지 않습니다. 내부적으로 Find 메서드를 호출하기 때문입니다.
- 성능이 중요한 코드에서 LINQ를 사용하지 않습니다. 오버헤드가 크기 때문입니다.
- 문자열 결합에는 + 연산자 대신 StringBuilder를 사용하여 메모리 할당을 줄이고 성능을 향상시킵니다.