public class LR : MonoBehaviour
{/// <summary>
/// 上一张图的按钮
/// </summary>
public Button preBtn;/// <summary>
/// 下一张图的按钮
/// </summary>
public Button nextBtn;/// <summary>
/// 图片组件
/// </summary>
public Image Img;/// <summary>
/// 点按钮数组
/// </summary>
public Button[] DotBtns;/// <summary>
/// 切换图片数组
/// </summary>
public Sprite[] sprites;[Header("索引对应的点")]
/// <summary>
/// 当前索引显示的颜色
/// </summary>
public Color selectColor;/// <summary>
/// 非当前索引显示的颜色
/// </summary>
public Color notSelectColor;/// <summary>
/// 点索引
/// </summary>
public Image[] imgDots;/// <summary>
/// 当前显示的图片索引
/// </summary>
public int Index;private void Awake()
{//注册上一张按钮的点击事件
preBtn.onClick.AddListener(() =>
{
LastImg();
});//注册下一张按钮的点击事件
nextBtn.onClick.AddListener(() =>
{
NextImg();
});//遍历数组中的所有按钮
for (int i = 0; i < DotBtns.Length; i++)
{
//定义当前索引
int index = i;//注册索引对应的按钮点击事件
DotBtns[i].onClick.AddListener(() =>
{
DotsClick(index);
});
}}
/// <summary>
/// 显示上一张图片
/// </summary>
void LastImg()
{
//索引减1
Index--;//如果索引小于0,将索引设置为最后一张图的索引
if (Index < 0)
{
Index = sprites.Length - 1;
}
//将组件Image的显示图片设置为当前sprites图片数组索引为Index的图片
Img.sprite = sprites[Index];
SelectDots();
}/// <summary>
/// 显示下一张图片
/// </summary>
void NextImg()
{
Index++;
if (Index > sprites.Length - 1)
{
Index = 0;
}
Img.sprite = sprites[Index];
SelectDots();
}/// <summary>
/// 显示当前索引对应的点
/// </summary>
void SelectDots()
{
for (int i = 0; i < imgDots.Length; i++)
{//如果当前索引等于点数组的索引
if (Index == i)
{
//设置当前点的颜色为selectColor
imgDots[i].color = selectColor;
}
else
{
imgDots[i].color = notSelectColor;
}
}
}/// <summary>
/// 切换当前索引对应的图片
/// </summary>
void DotsClick(int index)
{
//设置当前的索引Index为index
Index = index;
Img.sprite = sprites[Index];
SelectDots();
}}
unity 轮播图点击事件
于 2024-08-13 19:04:50 首次发布