Unity里面我现在有3个Image,我想从Resources中加载精灵图片按顺序显示在Image上

就是点击按钮显示第一个Sprite在最后一个Image上,过5到10秒将刚才显示的第一个Sprite移动到第二个Image上,再重新加载第二个Sprite到最后一个Image上,再过5到10秒再将第一个Sprite往前移动到第一个Image上,在最后一张Image上加载第三个Sprite。三个Image是这样排列的:口(第一个Image)口(第二个Image)口(最后一个Image)。然后依次继续这样进行,直到显示完所有的Sprite

这个只要判断做好就比较简单了(话说这个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());

}

温馨提示:内容为网友见解,仅供参考
无其他回答

Unity里面我现在有3个Image,我想从Resources中加载精灵图片按顺序显示...
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 Wa...

unity sprite怎么获取切割后的图
在Unity编辑器将会看到Tools菜单下多了"导出精灵"项,选中图集,然后点击"导出精灵"菜单项,即可导出子图成功。

unity sprite怎么获取切割后的图
在Unity编辑器将会看到Tools菜单下多了"导出精灵"项,选中图集,然后点击"导出精灵"菜单项,即可导出子图成功。

unity sprite怎么获取切割后的图
在Unity编辑器将会看到Tools菜单下多了"导出精灵"项,选中图集,然后点击"导出精灵"菜单项,即可导出子图成功。

unity sprite怎么获取切割后的图
将图片纹理类型更改为"Advanced",将"Read\/Write Enabled"属性进行打勾,如下图所示:创建一个脚本文件,代码如下:using UnityEngine;using UnityEditor;public class TestSaveSprite { (MenuItem("Tools\/导出精灵"))static void SaveSprite(){ string resourcesPath = "Assets\/Resources\/";foreach (...

unity sprite怎么获取切割后的图
将图片纹理类型更改为"Advanced",将"Read\/Write Enabled"属性进行打勾,创建一个脚本文件,代码如下:using UnityEngine;using UnityEditor;public class TestSaveSprite { (MenuItem("Tools\/导出精灵"))static void SaveSprite(){ string resourcesPath = "Assets\/Resources\/";foreach (Object obj in...

unity sprite怎么获取切割后的图
将图片纹理类型更改为"Advanced",将"Read\/Write Enabled"属性进行打勾,创建一个脚本文件,代码如下:using UnityEngine;using UnityEditor;public class TestSaveSprite { (MenuItem("Tools\/导出精灵"))static void SaveSprite(){ string resourcesPath = "Assets\/Resources\/";foreach (Object obj in...

相似回答