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

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

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

}

在Scence *** 作视图中,创建image并在Source Image放入你自己希望更改的图片后,利用本身的描点属性进行等比 *** 作(描点默认在视图中心的四个白色边框小三角)

四个三角分别拖拽到sence白色帆布四角/左右两端/上下两端等,image随着game视图放大缩小等比变化

unity的Asset文件夹下新建文件夹Resources,在Resources下创建文件夹Textures。把texture.png文件放入文件夹Textures下.

// 添加贴图 法1

// 法1的坑:Resources.Load()只能在Resources文件夹下读取,别的不行,所以该路径名默认在Asset/Resources下,且texture不要加文件后缀

this.gameObject.GetComponent<MeshRenderer>().Material.mainTexture=(Texture)(Resources.Load("Texture/texture"))

// 添加贴图 法2

this.gameObject.GetComponent<MeshRenderer>().material.mainTexture = new WWW("file://C:\\Users\\Desktop\\ProceduralGrid\\Assets\\Resources\\Textures\\texture.png").texture


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11499529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存