unity利用图片数组实现自定义背景渐变

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using DG.Tweening; public class BG : MonoBehaviour { public float fadetime; public Image[] images; public int second; private float flag; private float time; private int index=0; void Start() { for (int i = 1; i < images.Length; i++) { images[i].color = new Color(1, 1, 1, 0); } } // Update is called once per frame void Update() { time += Time.deltaTime; if (time>second) { if (second >= fadetime * 2) { if (index < images.Length - 1) { images[index + 1].DOFade(1, fadetime); images[index].DOFade(0, fadetime); index++; time = 0; } else { images[index].DOFade(0, fadetime); images[0].DOFade(1, fadetime); index = 0; } } else if(second < fadetime * 2) { Debug.Log("切换时间小于图片渐变时间"); } } } } 

注意此代码应用了dotween的dofade渐变,如果没有dotween插件,请删除头文件DG以及所有的dofade语句,然后将dofade替换为.color=new color(1,1,1,这里是透明度),注意这种没有渐变效果,如果想要渐变效果可以试下lerp。

使用方法,创建一个承载图片的容器,在里面创建多个图片组件,挂载你的图片,脚本挂载到容器上,把你的图片全选拖拽到脚本img那里,设置时间即可使用。