Unity实现滑页效果(UGUI)
简介
项目需要...直接展示效果吧:
原理
使用UGUI提供的ScrollRect和ScrollBar组件实现基本滑动以及自己控制每次移动一页来达到滑页的效果。
实现过程
1.创建两个panel,上面的panel用于显示,下面的panel用于存放按钮
2.在TopPanel上添加ScrollRect脚本,用于滑动
3.在TopPanel下创建一个新的Panel,并在子Panel下拜访要显示的对象
4.将该子Panel设置为ScrollRect的活动对象
5.为ScrollRect添加ScrollBar滚动条,直接在空白处单机右键添加ScrollBar即可
6.将ScrollBar与ScrollRect关联
7.设置ScrollRect的其他参数
8.将SliderControl脚本挂在TopPanel上,并关联ScrollBar
9.添加响应事件
为按钮也添加相应的事件(记住是五个按钮哈)
10.运行查看效果吧,如果出错,请检查上述步骤
代码
SliderControl:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class SliderControl : MonoBehaviour
{
    public Scrollbar m_Scrollbar;
    public ScrollRect m_ScrollRect;
    private float mTargetValue;
    private bool mNeedMove = false;
    private const float MOVE_SPEED = 1F;
    private const float SMOOTH_TIME = 0.2F;
    private float mMoveSpeed = 0f;
    public void OnPointerDown()
    {
        mNeedMove = false;
    }
    public void OnPointerUp()
    {
        // 判断当前位于哪个区间,设置自动滑动至的位置
        if (m_Scrollbar.value <= 0.125f)
        {
            mTargetValue = 0;
        }
        else if (m_Scrollbar.value <= 0.375f)
        {
            mTargetValue = 0.25f;
        }
        else if (m_Scrollbar.value <= 0.625f)
        {
            mTargetValue = 0.5f;
        }
        else if (m_Scrollbar.value <= 0.875f)
        {
            mTargetValue = 0.75f;
        }
        else
        {
            mTargetValue = 1f;
        }
        mNeedMove = true;
        mMoveSpeed = 0;
    }
    public void OnButtonClick(int value)
    {
        switch (value)
        {
            case 1:
                mTargetValue = 0;
                break;
            case 2:
                mTargetValue = 0.25f;
                break;
            case 3:
                mTargetValue = 0.5f;
                break;
            case 4:
                mTargetValue = 0.75f;
                break;
            case 5:
                mTargetValue = 1f;
                break;
            default:
                Debug.LogError("!!!!!");
                break;
        }
        mNeedMove = true;
    }
    void Update()
    {
        if (mNeedMove)
        {
            if (Mathf.Abs(m_Scrollbar.value - mTargetValue) < 0.01f)
            {
                m_Scrollbar.value = mTargetValue;
                mNeedMove = false;
                return;
            }
            m_Scrollbar.value = Mathf.SmoothDamp(m_Scrollbar.value, mTargetValue, ref mMoveSpeed, SMOOTH_TIME);
        }
    }
}
总结
移动用的mathf提供的平滑函数,如果需要阻尼效果,可以自己修改代码。Unity实现滑页效果(UGUI)的更多相关文章
- Unity实现滑页嵌套(解决ScrollRect嵌套冲突问题)
		简介 由于项目需要+有网友咨询,所以做了个横向滑页+某一横向滑页中有竖向滑页的demo,实现有点绕弯子,但基本功能还是比较完善,发上来共享一下. 效果 思路 第一步的思路是自己判断触屏拖动位置,然后控 ... 
- ViewPager、Fragment、Matrix综合使用实现Tab滑页效果
		原文地址:http://www.cnblogs.com/kross/p/3372987.html 我们实现一个上面是一个可以左右滑动的页面,下面是三个可点击切换的tab按钮,tab按钮上还有一个激活条 ... 
- Android viewPager+fragment实现滑页效果
		先上图,手指在手机向左或者向右滑就可以实现相应的页面切换. 先看activity_main.xml文件,非常简单,主要是三个标题TextView和viewpager <?xml version= ... 
- webapp应用--模拟电子书翻页效果
		前言: 现在移动互联网发展火热,手机上网的用户越来越多,甚至大有超过pc访问的趋势.所以,用web程序做出仿原生效果的移动应用,也变得越来越流行了.这种程序也就是我们常说的单页应用程序,它也有一个英文 ... 
- 利用GPU实现翻页效果
		0x00 前言 有一段时间没有更新博客了,在考虑写点什么的时候正好赶上了这个月我的书<Unity 3D脚本编程>又加印了.因此写篇小文聊聊利用shader来实现翻书的效果吧. 虽然本文是这 ... 
- 利用GPU实现翻页效果(分享自知乎网)
		https://zhuanlan.zhihu.com/p/28836892?utm_source=qq&utm_medium=social 首发于Runtime 写文章 利用GPU实现翻页效果 ... 
- ViewPager实现滑动翻页效果
		实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ... 
- 简单做出HTML5翻页效果文字特效
		之前在网上看到一款比较有新意的HTML5文字特效,文字效果是当鼠标滑过是出现翻开折叠的效果,类似书本翻页.于是我兴致勃勃的点开源码看了一下,发现其实实现也挺简单的,主要利用了CSS3的transfor ... 
- 实战Jquery(四)--标签页效果
		这两天完毕了实战四五六的样例,实例四是标签页的实现方法,实例五是级联菜单下拉框,实例六是窗体效果,都是web层经常使用的效果.越到后面越发认为技术这东西,就是一种思路的展现,懂了要实现 ... 
随机推荐
- Windows 8 图标前面的勾选
			http://bbs.pcbeta.com/viewthread-999730-1-1.html 不管是桌面的图标还是资源管理器中的图标之前都出现了一个小小的方框.选中图标的时候会自动勾选那个框,如果 ... 
- BW标准数据源初始化设置
			在安装了一干补丁和做好了BW与R3的链接之后(此处有BISIS操心,具体事宜不详),我们就可以登录到R3系统看个究竟了. 磨刀不误砍柴工,先检查一下两边系统的补丁: R3端如下, ,貌似我们是19,通 ... 
- 查看JAVA进程中哪个线程CPU消耗最高
			一,在centos linux 上查看进程占用cpu过高 top shift+h 查看哪个进程程消耗最高 二,查看JAVA进程中哪个线程消耗最高 2.1 导出java运行的线程信息 ... 
- openssl命令行工具简介 - RSA操作
			原文链接: http://www.cnblogs.com/aLittleBitCool/archive/2011/09/22/2185418.html 首先介绍下命令台下openssl工具的简单使用: ... 
- mingw 环境编译 liburl故障一例
			环境是 windows 10,已经安装 mingw,并设置好mingw 和 msys的环境变量 C:\Users\cracker>set |grep MinGW Path=C:\Program ... 
- ROS vpn (pptp) 配置及端口绑定配置
			网络搜集 一. 按VPN的协议分类 VPN的隧道协议主要有三种,PPTP,L2TP和IPSec,其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议:IPSec是第三层隧道协议,是最 ... 
- [转载]CSS教程:实例讲解定位Position
			http://www.missyuan.com/thread-395406-1-1.html 1. position:static 所有元素的默认定位都是:position:static,这意味着元素 ... 
- netbeans php安装、调试
			文件清单 jdk-8u45-windows-i586_8.0.450.14.1429092020.exe netbeans-8.0.2-php-windows.exe wampserver2.5-Ap ... 
- EHCACHE采用分布需要注意的地方
			分布式EHCACHE系统,有两种同步方式 方式1 : RMI组播方式 这也是最常用的方式,配置简单,关键一点,各EHCACHE的节点配置都是一样的 原理:这样当缓存改变时,ehcache会向230. ... 
- c++中继承和java中继承的对比
			java中: class Parent{ public void test(int a){ System.out.println("Parent:" + a); System.ou ... 
