Unity实现图片轮播组件实现图片轮播组件
游戏中有时候会见到图片轮播的效果,那么这里就自己封装了一个,包括自动轮播、切页按钮控制、页码下标更新、滑动轮
播、切页后的回调等等 。
下面,先上一个简陋的gif动态效果图
从图中可以看出,该示例包括了三张图片的轮播,左右分别是上一张和下一张的按钮,右下角显示了当前是第几章的页码下
标。
直接上脚本:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace UnityEngine.UI
{
[AddComponentMenu("UI/Slidershow", 39)] //添加菜单
[ExecuteInEditMode] //编辑模式下可执行
[DisallowMultipleComponent] //不可重复
[RequireComponent(typeof(RectTransform))] //依赖于RectTransform组件
public class Slideshow : UIBehaviour,IPointerDownHandler,IPointerUpHandler
{
public enum MovementType
{
/// <summary>
/// 循环
/// </summary>
Circulation, //循环,轮播到最后一页之后,直接回到第一页
/// <summary>
/// 来回往复
/// </summary>
PingPong, //来回往复,轮播到最后一页之后,倒序轮播,到第一页之后,同理
}
public enum MoveDir
{
Left,
Right,
}
[SerializeField] private MovementType m_movement = MovementType.Circulation;
public MovementType Movement { get { return m_movement; } set { m_movement = value; } }
[SerializeField] private RectTransform m_content;
评论2