【发布时间】:2019-04-04 05:01:54
【问题描述】:
我有一个 UI 文本,我在镜头外的脚本中更新它,然后使用动画让它在屏幕上滑动。该脚本使用 foreach 循环,因为文本更改和动画运行的次数是可变的。它总是跳过第三个动画(它会在控制台中打印效果,但不会播放该动画),即使调用了 4 或 5 个效果。
private Animation Anim;
public Text NBtext;
public GameObject NBEffect, Tut, TouchInput;
public IEnumerator NiceBowlingEffects(List<string> Effects, bool FirstFrame)
{
Anim = GetComponent<Animation>();
NBEffect.SetActive(true);
yield return new WaitForSeconds(.2f); //give frame ect a chance to load.
foreach (var Effect in Effects)
{
NBtext.text = Effect;
Print(Effect);
Anim.Play();
yield return new WaitForSeconds(Anim.clip.length);
}
NBEffect.SetActive(false);
if (FirstFrame)
{
Tut.SetActive(true);
}
TouchInput.SetActive(true);
}
【问题讨论】:
-
你能放一段视频吗?想看看。
-
当然可能需要我一分钟
-
正在上传的视频应该会在大约 2 小时后在 youtu.be/NtnyoUQhUsQ 上播放...抱歉,我的连接速度很慢。前 2 帧不播放第三个效果的动画。
-
如果把
List中的动画用索引一一播放,都行吗?比如Effects[0].Play()...Effects[1].Play()...... -
每次都是相同的动画,效果列表只是我用来在动画开始之前更新文本的字符串列表。