[Unity] Animatior 시스템 사용 시 고려 사항

1117 단어 AnimatorUnity
Unity 애니메이션에서 다음 GUI의 State Machine을 사용할 수 있습니다.

처음 이것을 알았을 때 애니메이션의 제어는 모두 이 시스템이었다. 스크립트는 입력에 완전히 반응하려고 했지만 몇 가지 이유가 있었다.

즉각성이 없다


위 그림의 Attack을 True 으로 설정합니다.csharp
anim.SetTrigger("Attack");
AnimatorStateInfo info = anim.GetCurrentAnimatorStateInfo(0);
State는 Attack의 State가 되어야 하지만 Animator State Info의 값은 원래의 State입니다. 블렌딩 등 여러 가지 이유가 바로 바뀌지 않기 때문입니다.따라서 즉각적인 판단이 필요한 것은 아니다.
예를 들어'점프할 때는 아무것도 할 수 없고, 똑같이 할 때는 점프할 수 없다'는 말이 실현되면 입력할 때는 점프를 눌렀지만 실제로는 점프 상태가 아니어서 다른 일은 할 수 있고 그 일을 할 때는 점프한다.

입력을 해제하지 않음


일단 진짜 trigger가 설정된 State가 되면 가짜로 돌아간다.하지만 그 스테이트가 되기 전까지는 진짜였다고 해도 과언이 아니다. 그게 문제다.
예를 들어 점프할 때 공격하지 못할 경우 점프하는 state로 Attack을 누르면 점프하는 state가 Attack의 State가 되지 않아 아무 일도 일어나지 않지만 착지 후 Idle로 돌아오기 때문에 Attack의 state로 바뀐다. 그리고 이때 Attack의 Trigger는 항상 진짜여서 공격한다.

최후


유니티의 애니메이션 시스템은 아직 완전히 이해되지 않았지만 현재 이해된 범위 내에서는 스크립트에 의존할 수밖에 없다.

좋은 웹페이지 즐겨찾기