1) 현재 재생 되고 있는 애니메이션에 대한 이름을 가져오고 싶습니다. 재생시키는 애니메이션을 apAnimPlayData currentAnime = portrait.Play("Anime_01"); 이런식으로 데이터 저장해놓는것 외에 다른 방법이 있을까요?2) 애니메이션의 재생상태를 가져오고 싶은데 GetAnimationPlaybackStatus 의 사용방법을 잘 모르겠네요. 간단한 예제를 보여주실 수 있나요?
안녕하세요!
문의 주신 것처럼 애니메이션 데이터(apAnimPlayData)를 가져오는 방법도 좋습니다.
또 다른 방법은 AnimationPlayDataList를 이용하여, 모든 애니메이션 클립에 해당하는 재생 정보를 리스트 형태로 참조할 수 있습니다.
저희가 AnimationPlayDataList와 GetAnimationPlaybackStatus를 이용하는 간단한 예제 스크립트를 작성해보았습니다.
아래의 스크립트는 대상 캐릭터의 모든 애니메이션을 가져와서 이름과 재생 상태를 모니터링합니다.
또한 지정된 애니메이션(예제에서는 Run)이 재생되는 중인지를 GetAnimationPlaybackStatus 함수를 이용하여 확인하는 내용도 담고 있습니다.
(이미지가 작게 보인다면 새 탭에서 열어서 크게 보실 수 있습니다.)
(1) apPortrait의 AnimationPlayDataList를 이용하여 모든 애니메이션 데이터를 가져온 후, 이름과 재생 상태를 GUI에 출력하는 코드입니다.
(2) 문의 주신 GetAnimationPlaybackStatus 함수를 이용하여 "Run" 애니메이션이 재생 중인지 체크하는 내용입니다.
GetAnimationPlaybackStatus 함수는 IsPlaying 함수와 유사한 경우에 사용될 수 있지만, Paused나 Ended 상태(Loop가 아닌 애니메이션)를 상세하게 확인할 수 있는 장점이 있습니다.
이 스크립트를 씬에 배치하고 캐릭터에 연결했습니다.
게임이 실행되면, GUI에 대상 캐릭터의 애니메이션 정보가 위와같이 나타납니다.
애니메이션 함수에 관한 설명은 아래의 링크에서 더 자세히 보실 수 있습니다.
https://rainyrizzle.github.io/kr/Script/SC_Animation.html
더 궁금한 점이 있다면 글을 남겨주세요!
감사합니다.
Eng)
Q. Questions about another way to get apAnimPlayData and how to use the GetAnimationPlaybackStatus function
A. Animation information can be retrieved using AnimationPlayDataList.
You can see the usage in the example script.