때때로 애니메이션의 재생 속도를 바꾸어 줘야 하는 경우가 생길겁니다.
이동속도 업그레이드를 해서 걷는모션의 재생속도가 빨라져야 하는 경우가 있겠네요.
다음과 같이 구현합니다.
애니메이터에 float 변수를 하나 생성시킵니다.
그리고 속도를 변경시키고 싶은 애니메이션을 선택한 뒤,
다음과 같이 Multiplier 옆의 Parameter를 체크합니다.
그리고 적용시키고 싶은 float Parameter를 할당시켜놓습니다.
에디터에서 이렇게 설정해 두면, 스크립트에서 test_Float 값을 조절해 애니메이션의 속도를 조절할 수 있게 됩니다.
저는 테스트를 위해 버튼을 두 개 만들어 보았습니다.
그리고 스크립트에 각 버튼에 쓸 함수 두 가지를 만들었습니다.
기본속도 버튼을 누르면 test_Float이 1이 되고, 빠르게 버튼을 누르면 test_Float을 2로 설정합니다.
애니메이터 안에 애니메이션을 하나만 쓸거라면 굳이 저렇게 float 파라미터를 선언해주고,
애니메이션에 할당해주고, SetFloat()으로 변경해주고 하지 않아도 됩니다.
anim_Test.Speed = 2;
이런 식으로 Speed 자체를 변경하는 방법도 있습니다.
하지만 애니메이터 안에 하나의 애니메이션만 들어갈 게 아니잖아요?
걷는 모션도 있어야하고, 공격 또는 점프, 피격 등등의 많은 애니메이션이 들어갈겁니다.
.Speed를 이용하여 애니메이션의 속도를 변경하면 애니메이터 안에 있는 모든 애니메이션의 Speed값이 같아집니다.
공격속도를 빠르게 하고싶어서 Speed를 2로 올렸는데 걷기와 점프, 피격의 속도도 2가 적용된다는 말이죠.
애니메이션 별로 속도를 다르게 해주고 싶다면 본 글의 내용대로 하시면 됩니다.
'Unity > Tip' 카테고리의 다른 글
[Unity Tip] 오브젝트의 절대각도 받아오기 (Unity Euler Angle) (0) | 2018.10.24 |
---|---|
[Unity Tip] 유니티 UI 터치 제외시키기 (0) | 2018.10.11 |
[Unity Tip] 유니티 반응형 UI 설정하기 (Unity responsive UI setting) (0) | 2018.09.27 |
[Unity Tip] 인스팩터 창에 오브젝트 한번에 넣기 (3) | 2018.09.05 |
[Unity Tip] 유니티 안드로이드 빌드 (Unity Android Build) (0) | 2018.07.18 |