【发布时间】:2016-08-15 20:47:30
【问题描述】:
我有一个看起来像这样的协程函数:
// Replacing on start game
public virtual void Replace()
{
StartCoroutine(ReplaceCoroutine());
}
// the Replacing animation
private IEnumerator ReplaceCoroutine()
{
// check if the piece has an animation attached
Animator animator = GetComponent<Animator>();
if (animator)
{
animator.Play(clearAnimation.name);
yield return new WaitForSeconds(clearAnimation.length);
}
}
然后我用这样的循环激活它:
// mixing pieces
for (int i = 0; i < 5; i++)
{
pieces[i].Replace();
}
问题是循环同时进行,并且所有内容都同时进行动画处理。我想确保,例如pieces[2],只有当pieces[1] 达到动画时间的一半时,才会启动他的动画协程。
有可能吗?
谢谢
【问题讨论】:
-
你可以使用
Thread.Sleep()方法来延迟你的动画 -
@Rakitić No. OP 不应该使用
Thread.Sleep()来等待简单的动画。 Unity 将冻结。