我正在制作MIDI可视化器,我决定尝试的第一台乐器是牛铃。刚开始时,我将存储何时应播放牛铃的时间列表(我将在稍后进行MIDI解析)。然后,它会检查当前时间是否已经过去或等于音符应该播放的时间。
for (int i = 0; i < times.Length; i++) { // For each note
bool notePlayed = false;
while (!notePlayed) { // While current note hasn't been played (waiting for its time)
if (Time.timeSinceLevelLoad >= timesAdjusted [i]) { // If the current time is past or equal to the time it should play
anim.Play ("hit"); // Play animation
Debug.Log ("hit!");
notePlayed = true; // The note has been played.
}
yield return null;
}
}
答案 0 :(得分:0)
您正在使用“播放”方法,该方法将播放动画状态,而不管您的过渡状态(Idle-> Hit),而且过渡中没有定义条件,这会在状态之间创建无限循环。
要解决主要问题,必须将“ normalizedTime”参数设置为0,例如:
anim.Play ("hit",0,0); //assuming "hit" state is in your 0 layer
答案 1 :(得分:0)
禁用具有退出时间复选框以更改动画而无需等待另一个