发布网友 发布时间:2024-09-27 17:07
共1个回答
热心网友 时间:2024-10-07 09:43
这个只要判断做好就比较简单了(话说这个if 有点多 大概思想是这个 看不下去就自己优化下吧)点击的时候调用协程就可以了 (比如下图)
按钮不好调用协程的话 写个方法 调用协程 按钮调用那个方法
下面帖代码:
public Image[] images;//image的数组(需要的话可以动态获取 也可以手托)
public Sprite[] sprites;//sprite的数组(同上)
WaitForSeconds wait;
public float waitTime=1;//等待时间
int tim;//计次的参数
private void Start()
{
tim = 0;
wait = new WaitForSeconds(waitTime);
}
IEnumerator WaitChangeImage()
{
tim++;
ChangeImage();
yield return wait;
if (tim < sprites.Length)
{
StartCoroutine(WaitChangeImage());
}
}
private void ChangeImage()
{
for (int i = 0; i <images.Length ; i++)
{
if (tim < images.Length)
{
if (images.Length - tim + i < images.Length)
{
if (i < sprites.Length)
{
images[images.Length - tim + i].sprite = sprites[i];
}
else
{
images[images.Length - tim + i].sprite = null;
}
}
}
else
{
if (i + tim - images.Length < sprites.Length)
{
images[i].sprite = sprites[i + tim - images.Length];
}
else
{
images[i].sprite = null;
}
}
}
}
图的话回调协程没有限制 之后代码上补上了…… 如果想要最后一张图跑完全部image的话
在协程下面 改回调协程的限制为下面的就可以了
if (tim < sprites.Length+images.Length)
{
StartCoroutine(WaitChangeImage());
}