에디터 내에서는 DOTWeen이 부드럽게 잘 되는데 스마트폰에서는 끊겨보일때가 있을 것이다.
DOTween 애니메이션 성능 최적화를 위해 아래 방식들을 확인하자.
DOTween 업데이트 방식 [SetUpdate(true)]
DOTween의 업데이트 방식을 TimeScale과 무관하게 설정한다.
예를 들어, 애니메이션이 정확한 프레임으로 실행되도록 SetUpdate(true)를 추가해보자..
DOTween Update 설정 최적화 [SetUpdate(UpdateType.Late)]
SetUpdate(true)는 Time.timeScale에 독립적인 업데이트를 보장하지만,
성능 문제가 발생하면 애니메이션 간격이 부정확하게 느껴질 수 있다.
SetUpdate(UpdateType.Late)를 사용해 LateUpdate 단계에서 애니메이션 처리가 이루어지도록 설정해보자.
이는 화면 렌더링 후 부드럽게 애니메이션을 처리할 수 있게 한다.
DOTween의 UpdateType 옵션
- Normal (기본값)
- UpdateType.Normal
- Unity의 기본 Update 단계에서 애니메이션이 업데이트
- 일반적인 게임 로직과 함께 실행
- Fixed
- UpdateType.Fixed
- Unity의 FixedUpdate 단계에서 애니메이션이 실행
- 물리 연산처럼 고정된 시간 간격으로 업데이트
- Late
- UpdateType.Late
- Unity의 LateUpdate 단계에서 애니메이션이 실행
- Update 단계가 완료된 후 실행되므로, 다른 애니메이션이나 로직의 결과를 반영한 상태에서 애니메이션을 진행
- Manual
- UpdateType.Manual
- DOTween 애니메이션의 업데이트를 수동으로 관리
- DOTween.ManualUpdate(float deltaTime, float unscaledDeltaTime)를 호출해 직접 업데이트
UpdateType.Late의 사용 목적
UpdateType.Late를 사용하면 Unity의 LateUpdate 단계에서 DOTween 애니메이션이 실행되어 다음과 같은 장점이 있다.
- 렌더링 순서 조정
- LateUpdate는 Unity의 프레임 렌더링 직전에 실행
- 다른 Update 단계에서의 UI 또는 Transform 변경이 끝난 후 애니메이션을 처리 가능
- 의존성 문제 해결
- 다른 오브젝트의 상태가 변경된 이후에 애니메이션이 실행되므로, 종속적인 로직이 있을 때 유용
- 예를 들어, UI 배치가 Update 단계에서 변경된 후에 애니메이션이 자연스럽게 동작
- 더 부드러운 애니메이션
- 핸드폰과 같은 환경에서, 프레임 렌더링과 애니메이션의 순서가 더 자연스러워질 수 있음
- 특히 UI 관련 애니메이션에 효과적
반응형
'유니티 C# 함수 사용 정리' 카테고리의 다른 글
[SetEase] DOTween에서 Animation Curve로 속도 커스텀 하는 방법 (0) | 2024.12.20 |
---|---|
Try-catch (+finally) 알아보기 (0) | 2024.06.09 |
리스트 -> 딕셔너리, 숫자 카운트 및 지정 횟수 미만인 숫자를 리스트로 반환하는 메서드 (0) | 2024.05.12 |
[LINQ] 확장 메서드 (0) | 2024.05.09 |
Resources 폴더에서 Atlas를 찾아 image 반환하기 (0) | 2024.03.25 |