본문 바로가기
알아두면 좋은것들

02.26 (TIL)

by 오랑이귀엽다 2024. 2. 26.
  1. Unity의 Update 메서드 종류와 특징

Unity에서는 게임 오브젝트의 상태를 업데이트하기 위해 여러 종류의 Update 메서드를 제공합니다. 각각은 다른 시점에 호출되며, 특정 유형의 작업을 수행하기에 적합한 특징을 가집니다.

  • Update()
    • 매 프레임마다 호출됩니다.
    • 게임 로직, 사용자 입력 처리 등 대부분의 일반적인 업데이트 작업을 수행하는 데 사용됩니다.
    • 프레임마다 실행되므로, 프레임 속도에 따라 호출 빈도가 달라집니다.
  • FixedUpdate()
    • 일정한 시간 간격으로 호출되며, 주로 물리 업데이트(리지드바디 이동, 충돌 체크 등)에 사용됩니다.
    • 물리 시뮬레이션을 일관되게 유지하기 위해 프레임 속도와 무관하게 일정한 주기로 실행됩니다.
    • "Time.fixedDeltaTime"을 통해 호출 주기를 조정할 수 있습니다.
  • LateUpdate()
    • 모든 Update() 메서드가 호출된 후, 그리고 모든 카메라 렌더링이 시작되기 전에 호출됩니다.
    • 주로 카메라의 추적 로직 등, 다른 오브젝트들의 업데이트를 기반으로 작업을 수행해야 할 때 사용됩니다.
  1. 서로 다른 성능을 가진 기기에서 Update 사용 시 주의점
  • 프레임 속도의 변동성: 서로 다른 성능을 가진 기기에서는 프레임 속도가 크게 달라질 수 있습니다. 이는 Update() 메서드 내의 로직이 실행되는 빈도에 영향을 줍니다. 따라서, 프레임 속도에 의존적이지 않은 로직 구현이 필요합니다. 예를 들어, 이동 로직을 구현할 때 "Time.deltaTime"을 사용하여 실제 경과 시간에 비례하도록 처리해야 합니다.
  • 물리 업데이트의 일관성 유지: FixedUpdate()는 일정한 시간 간격으로 호출되므로, 물리 업데이트를 처리할 때 일관성을 유지할 수 있습니다. 그러나, 너무 많은 물리 계산이 필요한 경우, 성능이 낮은 기기에서는 물리 시뮬레이션의 정확도가 떨어질 수 있으므로, 최적화가 필요합니다.
  • 업데이트 로직의 최적화: 성능이 제한된 기기에서는 복잡한 계산이나 대량의 데이터 처리를 Update() 메서드에서 수행하는 것을 피해야 합니다. 필요한 경우, 비용이 많이 드는 작업은 코루틴을 사용하여 여러 프레임에 걸쳐 분산시키거나, 비동기 처리 방식을 고려해야 합니다.
  • 리소스 사용 최적화: 모든 기기에서 원활하게 실행되려면, 리소스(텍스처, 메시 등) 사용을 최적화하고, 필요하지 않은 업데이트 로직은 비활성화하여 성능에 미치는 영향을 최소화해야 합니다.

다양한 성능의 기기에서 일관된 사용자 경험을 제공하기 위해서는 성능 테스트와 프로파일링을 정기적으로 수행하여, 성능 병목 현상을 식별하고 해결하는 것이 중요합니다.

 
 
 
 

'알아두면 좋은것들' 카테고리의 다른 글

02.28 (TIL)  (2) 2024.02.28
02.27 (TIL)  (0) 2024.02.27
02.23 (TIL)  (0) 2024.02.23
02.19 (TIL)  (0) 2024.02.19
02.15 (TIL)  (0) 2024.02.15