은 기본적으로 당신이 작동이 솔루션에 대한 두 가지 작업을 수행해야합니다
애니메이션을 시작
- .
- 다음 애니메이션을 재생하기 전에 애니메이션이 끝날 때까지 기다립니다.
이 작업을 수행 할 수있는 방법의 예는 다음과 같습니다
animation.PlayQueued("Something");
yield WaitForAnimation(animation);
그리고 WaitForAnimation
에 대한 정의는 다음과 같습니다
C 번호 :
private IEnumerator WaitForAnimation (Animation animation)
{
do
{
yield return null;
} while (animation.isPlaying);
}
JS :
function WaitForAnimation (Animation animation)
{
yield; while (animation.isPlaying) yield;
}
do-while 루프는 동일한 프레임 PlayQueued에서 animation.isPlaying
이 false
을 반환한다는 것을 보여주는 실험에서 나왔습니다.
IEnumerator Start()
{
yield return animation.WhilePlaying("Something");
}
Source, alternatives and discussion.
:
이
public static class AnimationExtensions
{
public static IEnumerator WhilePlaying(this Animation animation)
{
do
{
yield return null;
} while (animation.isPlaying);
}
public static IEnumerator WhilePlaying(this Animation animation,
string animationName)
{
animation.PlayQueued(animationName);
yield return animation.WhilePlaying();
}
}
마지막으로 쉽게 코드에서 이것을 사용할 수 있습니다 :이 같은 단순화 당신이 애니메이션에 대한 확장 메서드를 만들 수 있습니다 약간의 땜질로