在动画中使用不同的fadeLength时,动画不会跟随队列

时间:2015-08-12 23:32:55

标签: c# animation unity3d

例如:

我有10个动画可以玩,而他们所做的只是动画一只手 在第一个 3 动画中,长度 2.5 ,我将fadeLength设置为0.6。 (第一
下一个 4 动画的长度 1.333 ,我将fadeLength设置为0.3。 (第二
在最后 3 动画中,长度 2.5 ,我也将fadeLength设置为0.6。 (第三次

当我点击播放时,它会以Animation.CrossFadeQueued(name, fadeLength, QueueMode.CompleteOthers)播放每个动画 前三个是正确播放的(第一个)。然后是最后三个(第三个​​) 这是问题,跳过了fadeLength 0.3的4个动画( second )。就在那些6(第一个第三个​​)动画结束时,播放了必须播放的4个( second )动画,但它不会结束,它会冻结。

如何在动画队列中使用不同的fadeLength?他们真的必须排队,以便他们可以在他们之间褪色。


代码:

GameObject HERO = GameObject.FindGameObjectWithTag("hero");
Animation ANIM = HERO.GetComponent<Animation>();

// first
ANIM.CrossFadeQueued("long_move0", 0.6F, QueueMode.CompleteOthers);
ANIM.CrossFadeQueued("long_move1", 0.6F, QueueMode.CompleteOthers);
ANIM.CrossFadeQueued("long_move2", 0.6F, QueueMode.CompleteOthers);

// second
ANIM.CrossFadeQueued("small_move0", 0.3F, QueueMode.CompleteOthers);
ANIM.CrossFadeQueued("small_move1", 0.3F, QueueMode.CompleteOthers);
ANIM.CrossFadeQueued("small_move2", 0.3F, QueueMode.CompleteOthers);
ANIM.CrossFadeQueued("small_move3", 0.3F, QueueMode.CompleteOthers);

// third
ANIM.CrossFadeQueued("long_move3", 0.6F, QueueMode.CompleteOthers);
ANIM.CrossFadeQueued("long_move4", 0.6F, QueueMode.CompleteOthers);
ANIM.CrossFadeQueued("long_move5", 0.6F, QueueMode.CompleteOthers);

播放时,遵循以下顺序:

  1. long_move0
  2. long_move1
  3. long_move2
  4. long_move3
  5. long_move4
  6. long_move5
  7. 冻结了一段小动画
  8. small_move0
  9. small_move1
  10. small_move2
  11. small_move3

0 个答案:

没有答案