728x90
Animator의 GetCurrentAnimatorStateInfo 함수를 통해서 현재 진행되고 있는 애니메이션의 상태를 체크할 수 있습니다.
1
2
3
4
5
6
|
if (!PlayerMovement.instance.anim.GetCurrentAnimatorStateInfo(0).IsName("Idle"))
{
PlayerMovement.instance.anim.SetBool("Attack", false);
PlayerMovement.instance.anim.SetBool("Walk", false);
PlayerMovement.instance.anim.SetBool("Idle", true);
}
|
위의 코드의 조건문은 PlayerMovement의 애니메이터에 현재 진행되고 있는 애니메이션의 이름이 Idle이 아니라면 조건문 안으로 들어가게 되어있습니다.
현재 진행되고 있는 애니메이션이 무엇인지 볼 수 있는 것이 GetCurrentAnimatorStateInfo.IsName 입니다.
1
2
3
4
|
if (PlayerMovement.instance.anim.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1.0f)
{
//하고 싶은 동작
}
|
위의 코드에서 normalizedTime = 1의 뜻은 현재 진행되고 있는 애니메이션이 모두 진행되었다는 것이고, normalizedTime = 0은 애니메이션이 아직 시작하지 않았다는 것을 뜻합니다.
이렇게 GetCurrentAnimatorStateInfo를 통해서 현재 진행되고있는 애니메이션의 정보를 가져올 수 있습니다.
728x90
'Unity' 카테고리의 다른 글
[Unity] ScriptableObject 가 뭐야? (0) | 2020.11.12 |
---|---|
[Unity] 유니티에서 Enum 변수를 사용하는 법 (0) | 2020.11.11 |
[Unity] 공중에 있는 땅 통과 후 착지 구현 (0) | 2020.06.15 |
[Unity] Video Player 페이드 인, 페이드 아웃 효과 만들기 (2) (0) | 2020.06.13 |
[Unity] Video Player 페이드 인, 페이드 아웃 효과 만들기 (1) (0) | 2020.06.12 |