작성
·
1.2K
0
선생님, 안녕하세요.
덕분에 즐겁게 공부하고 있습니다.
Has Exit Time을 간단하게
GetCurrentAnimatorStateInfo(0).normalizedTime
을 사용하여 구현하는 방법도 있을 것 같은데요.
PlayAnim() 에 아래와 같은 조건을 넣는 것이죠.
우려되는 문제가 있을까요?
if (animator.GetCurrentAnimatorStateInfo(0).IsName("PlayerAttack") && animator.GetCurrentAnimatorStateInfo(0).normalizedTime <= 1.0f)
return;
답변 3
1
안녕하세요.
재미있게 들으시고 계시다니 너무 감사드립니다. ^^
프로그래밍이 답이 있는게 아니니까요. 원하는대로 정확히 동작만 한다면 문제는 없습니다.
찾아보니 normalizedTime 이 애니메이션의 시간을 0에서 1로 구분한 시간이라 1이 끝났다고 생각할수 있겠네요.
https://docs.unity3d.com/ScriptReference/AnimationState-normalizedTime.html
그래서 구글에서 찾아보니 문제가 조금 있는 것처럼 보이는데 아래 링크의 글 아래쪽에 밑에 분이 해결책을 올려주셨네요.
https://forum.unity.com/threads/animator-getcurrentanimatorstateinfo-0-normalizedtime-infinity.906236/
테스트를 안해봤는데 나중에 Part4 강의 완료하고 테스트 해보도록 하겠습니다.
우선 강의작업이 안끝나서요 ㅠ 계속 작업하고 있습니다.
그리고 저같은 경우는 우선 0.583 이 값이 어디에서 나오는지 확인해보고 이 다음다음 강의에서 실제 애니메이션의 시간을 불러와서 코드에서 작업하고 있습니다. 눈에 보이는게 이해가 더 쉬운거 같아서 그렇게 적업을 했었고요.
그리고 강의를 찍는 당시 normalizeTime 을 몰랐습니다. ㅎ
이런 문제는 사실 원하시는대로 깔끔하게 작동하면 아무 문제 없습니다. 딱히 큰문제가 없어 보이고요.
다시한번 말씀드리지만 프로그래밍에서 답이 하나만 있지 않으니까요.
질문 감사드리고요. 또 부담없이 질문해주세요 감사합니다. 좋은 밤 되세요.
0
아뇨 ㅎㅎ 아는척이라니요
절대 그렇게 생각하고 말씀드린거 아니고요
혹시 강의 진행에 있어서 더 좋은 방법이 있으면 말씀해주셔도 괜찮습니다
이쪽일이 여러가지 답중에서 하나를 골라서 하는 일이니까요
생각한대로 프로그래밍을 작성할수만 있으면 어떻게 해도 관계없다는 걸 말씀드리고 싶었습니다
저도 계속 배워야 하고요 다른 분들에게 듣고 배워서 알아가는 것도 거부감도 별로 없으니까요
말씀하시고 싶은 내용은 편하게 말씀해주세요
감사합니다 ^^
0
네! 선생님!
저도 normalizeTime 을 원래 알았던 것은 아니에요 ㅎ
선생님의 강의를 보다가,
GetCurrentAnimatorStateInfo 에 대해 자세히 알고 싶어,
구글링 하다가 알게 되었고,
normalizeTime 을 사용해보니 결과물이 같은 것 같아
그저 확인차 질문 드린 거에요.
절대 '아는척' 하려고 올린 질문이 아닙니다. ㅠ.ㅠ
선생님 강의로 처음 유니티 시작하는 입문자입니다.
답변 주셔서 정말 감사합니다.
강의 끝날 때까지 화이팅입니다!
저도 끝까지 완주하겠습니다!