预览效果,切换过程顺滑
使用最后一次滑动的方向来判定目标方向,如果朝某边偏移后往回移动,会返回到原来的位置
支持代码设置索引直接跳转
不需要手动设置宽度,自动根据当前子类来设置滑动距离,支持动态添加和删除
使用方法:
0 新建脚本,重命名为Slider,复制代码保存
1 新建Scroll View控件,修改长宽为600*200
2 将Content锚点改为如图所示,并添加图中2个组件并设置变量
3 添加页面数据,以Image为例(按钮或Panel皆可,但尺寸需要保持一致),设置尺寸为600*200,然后Ctrl+D复制多份,Content会自动拉伸长度
4 选择Scroll View,按照图中关闭Vertical与Inertil(滑动惯性),删除用不上的Scrollbar Vertical纵向滑条,加入Slide脚本,把Content拖入变量
然后点击运行,就可以看见上面的效果了
5 附加代码
//跳转到指定节点,如果不存在会返回false
bool isSucceed = GetComponent<Slide>().ToAppointNode(int 指定节点)
//返回当前所在的节点
int x = GetComponent<Slide>().GetCurNodeCount()
//返回当前总节点数(也就是Content的子对象数,不会包含隐藏对象)
int x = GetComponent<Slide>().GetMaxNodeCount()
//注册回调,切换不同页面时触发
GetComponent<Slide>().SubscribeCallback(Action<int> callback);
//解除回调
GetComponent<Slide>().UnSubscribeCallback();
代码
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;