1.ui fade切换
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
[RequireComponent(typeof(Image))]
public class Luo_bo : MonoBehaviour
{
private Image image;
[Header("轮播精灵")]
public Sprite[] sprites;
[Header("轮播时间间隔")]
public float time=3;
private bool stop;
private int number;
// Start is called before the first frame update
void Start()
{
image = GetComponent<Image>();
image.sprite = sprites[0];
StartCoroutine(Lun_bo());
}
IEnumerator Lun_bo()
{
while (true)
{
if(stop==false)
{
stop = true;
image.sprite = sprites[number];
yield return new WaitForSeconds(time);
image.DOFade(0, 0.5f);
yield return new WaitForSeconds(0.5f);
number++;
if (number == sprites.Length)
{
number = 0;
}
image.sprite = sprites[number];
image.DOFade(1, 0.5f);
yield return new WaitForSeconds(time+0.5f);
stop = false;
}
}
}
}
2.ui 左右更替
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class Lun_bo_two : MonoBehaviour
{
public Mask mask_view;
[Header("移动的框(2)")]
public Image[] one_two;
[Header("显示的精灵")]
public Sprite[] sprites;
[Header("切换速度")]
public float speed;
[Header("左右方向")]
public bool back_forward;
private int index;
private int index_number;
//遮罩
private float width_rect;
// Start is called before the first frame update
void Start()
{
width_rect = mask_view.rectTransform.rect.width;
//从右往左
if (back_forward==true)
{
one_two[0].transform.localPosition = Vector3.zero;
one_two[1].transform.localPosition = Vector3.zero+new Vector3 (width_rect, 0,0);
}
//从左往右
else
{
one_two[0].transform.localPosition = Vector3.zero;
one_two[1].transform.localPosition = Vector3.zero + new Vector3(-width_rect, 0, 0);
}
StartCoroutine(Start_go(speed, back_forward));
}
IEnumerator Start_go(float speed, bool back_forward)
{
while (true)
{
//从右往左
if (back_forward == true)
{
if (index_number % 2 == 0)
{
one_two[0].sprite = sprites[index];
if (index == sprites.Length - 1)
{
index = -1;
}
one_two[1].sprite = sprites[index + 1];
one_two[0].transform.DOLocalMoveX(-width_rect, speed);
one_two[1].transform.DOLocalMoveX(0, speed);
}
else
{
one_two[1].sprite = sprites[index];
if (index == sprites.Length - 1)
{
index = -1;
}
one_two[0].sprite = sprites[index + 1];
one_two[0].transform.DOLocalMoveX(0, speed);
one_two[1].transform.DOLocalMoveX(-width_rect, speed);
}
yield return new WaitForSeconds(speed);
if (index_number % 2 == 0)
{
one_two[0].transform.localPosition = new Vector3(width_rect, 0, 0);
}
else
{
one_two[1].transform.localPosition = new Vector3(width_rect, 0, 0);
}
index++;
index_number++;
}
//从左往右
else
{
if (index_number % 2 == 0)
{
one_two[0].sprite = sprites[index];
if (index == sprites.Length - 1)
{
index =-1;
}
one_two[1].sprite = sprites[index + 1];
one_two[0].transform.DOLocalMoveX(width_rect, speed);
one_two[1].transform.DOLocalMoveX(0, speed);
}
else
{
one_two[1].sprite = sprites[index];
if (index == sprites.Length - 1)
{
index = -1;
}
one_two[0].sprite = sprites[index + 1];
one_two[0].transform.DOLocalMoveX(0, speed);
one_two[1].transform.DOLocalMoveX(width_rect, speed);
}
yield return new WaitForSeconds(speed);
if (index_number % 2 == 0)
{
one_two[0].transform.localPosition = new Vector3(-width_rect, 0, 0);
}
else
{
one_two[1].transform.localPosition = new Vector3(-width_rect, 0, 0);
}
index++;
index_number++;
}
}
}
}