728x90
게임이 정지된 경우에도 UI요소는 움직여야 하는 경우가 더러있습니다. 유니티에서 게임을 정지하기 위해 주로 아래의 코드를 사용합니다.
Time.timeScale = 0.0f;
하지만 유니티의 애니메이션은 TimeScale의 영향을 받기 때문에 UI애니메이션 또한 멈추게됩니다. 이를 해결하기 위해선 애니메이터 컴포넌트에서 업데이트 모드를 UnscaledTime으로 바꾸어야합니다.
업데이트 모드를 UnscaledTime으로 바꾼다는것은 애니메이션을 TimeScale값과 상관없이 독립적으로 업데이트 하겠다는것을 의미합니다.
아래의 유니티 공식문서에서도 주로 게임이 정지되었을때 UI요소를 업데이트 하기위해서 쓰인다고 명시되어있습니다.
Unity - Scripting API: AnimatorUpdateMode.UnscaledTime
Success! Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. Close
docs.unity3d.com
728x90
반응형
'Unity > Tip' 카테고리의 다른 글
오브젝트의 중심을 얻는방법 (0) | 2023.03.11 |
---|---|
게임이 시작되기전에 특정 오브젝트를 추가하는 방법 (0) | 2023.03.05 |
World UI가 항상 오브젝트 위에 보이도록 하는방법 (0) | 2023.03.04 |
"진짜" 로딩을 만드는 방법 (0) | 2023.03.04 |
2D 게임에서 Y축을 기준으로 오브젝트를 정렬하는 방법 (0) | 2023.03.04 |