Learning
When: 1학년 6월 29일
How:
뱀서 라이크 게임을 개인 프로젝트로 만들던 중에 능력 3개 중 하나를 선택하는 기능을 구현하고 있었습니다. 그런데 그것을 고를 때는 Time.timeScale이 0이 되어야 하기 때문에 적이나 플레이어는 멈추지만, 선택하는 카드들은 하늘에서 뚝 떨어지는 연출을 하고 싶었기 때문에 그것을 구현하기 위해 파티클, 애니메이션, 코루틴 등이 timeScale의 영향을 받지 않게 하는 방법을 공부해 보게 되었습니다.
Understanding:
일단 카드를 고르는 장면에 Particle System, Coroutine, Animation, Audio가 전부 쓰였기 때문에 살짝 머리가 아팠지만 공부를 해보니 아래와 같은 설정을 해주면 어렵지 않게 timeScale의 영향을 안받게 할 수 있었습니다. (Audio는 timeScale이 0 이어도 제대로 작동을 합니다.)
| ParticleSystem | particleSystem.useUnscaledTime = true; |
| Coroutine | yield return new WaitForSecondsRealtime(1f); |
| Animation | animator.updateMode = AnimatorUpdateMode.UnscaledTime; |
Result: 이런 식으로 파티클 시스템, 애니메이터의 timeScale 영향을 없앨 수 있고, Coroutine은 WaitForSecondsRealtime 메서드를 사용하여 영향을 받지 않게 할 수 있습니다. Audio는 timeScale의 영향을 받지 않습니다.
'UnityEngine' 카테고리의 다른 글
| [Unity] Sorting Layer (0) | 2025.07.01 |
|---|---|
| [Unity] TextMeshProGUI 한글 추가하기 (0) | 2025.06.30 |
| [Unity] 체력 바 만들기 (0) | 2025.06.26 |
| [Unity] 에셋에 있는 특정 파일을 사용하고 있는 오브젝트 찾기 (0) | 2025.06.23 |
| [Unity] 짐벌락(Gimbal Lock) (0) | 2025.06.18 |