1 minute read

오늘은 이번 주의 목표였던 게임 한 사이클을 만들고 테스트하는 작업을 진행했다. 이를 위해 만든 것들을 합치고, 자잘한 버그를 수정하면서 테스트를 해본 결과, 잘 작동했다. 이제 개선점과 추가 구현을 위한 계획을 세우고 다시 역할을 분배했다. 게임 구현에 있어서는 많은 일을 하지는 않았지만, 최적화에 대해 공부한 내용을 정리해보겠다.

최적화 방법

최적화는 게임 성능을 향상시키기 위해 중요하다. 다음은 최적화를 위한 몇 가지 방법이다:

  1. InputSystem 사용:
    • SendMessages, Broadcast 같은 함수나 Find 같은 오래 걸리는 함수는 사용하지 않는 것이 좋다.
    • Update와 같은 생명주기 함수가 비어있으면 지워야 한다. 그렇지 않으면 비용이 발생한다.
  2. Camera 최적화:
    • Camera.main을 사용하는 것보다는 캐싱하여 사용하는 것이 좋다.
  3. 문자열 조작:
    • 문자열을 조작하거나 문자열 비교를 통해 탐색하는 작업은 시간이 오래 걸린다.
  4. 코루틴 사용:
    • 코루틴은 메모리 효율이 떨어질 수 있다.

위와 같은 방법 외에도 최적화를 위해 다양한 툴을 사용할 수 있다.

Sprite Atlas

Sprite Atlas는 여러 이미지를 하나의 텍스처에 모아놓고, 이를 잘라서 사용하는 방식으로 로딩 시간을 줄여준다. 이를 설정하는 방법은 다음과 같다:

  1. Project Settings 설정:
    • Edit > Project Settings를 열고 Editor에서 SpritePacker ModeSprite AtlasV1 - Always Enabled로 설정한다.
  2. Sprite Atlas 생성:
    • 새로운 Sprite Atlas를 생성하고, Packables에 이미지를 추가한다.
  3. 코드에서 Sprite Atlas 사용:
    • 다음과 같은 코드로 각 객체에 이미지를 분배한다:
      spriteAtlas.GetSprite(spriteName);
      

이렇게 하면 이미지를 한 번에 로딩하고 분배할 수 있어 로딩 시간을 줄일 수 있다. 특히 이미지가 다양할 경우 유용하지만, 불필요한 이미지를 합쳐놓으면 오히려 손해가 될 수 있으니 묶을 이미지를 잘 선정해야 한다.