NGUI研究院之自制 Scroll View实现触摸滚动相册效果(四)
来源:互联网 发布:java 读取ftp文件流 编辑:程序博客网 时间:2024/05/23 17:01
如下图所示,这是我们的工程页面,程序的实现原理是将相册在Unity3D世界中呈横向队列,摄像机固定的照射在第一个Item相册,当手指发生滑动事件时,计算向左滑动还是向右滑动,此时整体移动相册队列,而摄像机不动。为了让滑动效果更加好看我们需要使用插值计算滑动的时间,使滑动队列不是直接移动过去,而是以一定惯性移动过去。相册下方我们制作一个小白点用来记录当前滑动的位置,在做几个灰色的点表示队列一共的长度,滑动时下方的小白点也会跟随移动,这样就更想高级控件啦。当然小白点与小灰点是要根据item的数量居中显示的喔。
注解1:滚动相册一般可分为两种,第一种为数量已知的情况,第二种为数量未知的情况。因为第一种比较简单所以我们主要探讨第二种。
Script historyInit.cs: 该脚本用于相册队列的初始化工作。在这里初始化相册队列的数量,计算完毕让队列以横向线性的排列方式在Unity3D中。
Prefab item:每个相册的预设,我这里每个相册上还会有一些文字的描述,我需要动态的修改它们的内容。大家也可根据自己的情况制作自己的相册item。
Prefabhui:相册滚动时下方用来记录相册队列总数的灰色小点。
Prefabbai :相册滚动时下方用来记录当前滚动页面ID的白色小点。
Point :因为灰色、白色的点不能和相册队列在一个面板之上,否则会跟着相册队列移动而移动,所以这里将灰色白色的点放在两外一个面板之上。
注解2:这个面板上的4个item就是我们通过historyinit脚本初始化时动态生成赋值的、当界面发生触摸事件时,会整体移动该面板让自对象的相册队列跟随移动。
注解3:button0 – button3 是下方的Tabar。bai(Clone)表示白色的小点,hui(Clone)表示灰色的小点,它们的位置是需要根据滑动事件而改变的。
因为我们需要监听每一个Item的滑动事件,所以肯定要在每一个item预设之上绑定监听事件的脚本,如下图所示。
注解1:因为需要监听触摸滑动事件,所以肯定要绑定Box Collider组件,这个是NGUI的标准用法。
注解2:Move脚本用来监听向左滑动 向右滑动 点击事件。
注解3:这个就是每一个相册的item,在上图中挂在historyInit脚本之上。
historyInit.cs
如下图所示,我们可以看出Tabbar 、 下方记录界面的灰色、白色小点、摄像机 它们是不会发生改变的。唯一改变的就是面板之上的相册队列。为了让滑动界面的效果更加连贯,我们需要以插值的形式来计算真个相册面板的坐标。
触摸的事件全都写在Move.cs脚本中。
还有两个辅助的类,我也贴出来。
UserData.cs
Globe.cs 这个静态类用来共享记录多个脚本甚至多个场景所需的数据。
写到这里,本篇博文就写的差不多了。这篇文章我是用NGUI来实现的触摸滚动效果,仔细想想,其实不用NGUI完全也能实现这样的效果。在脚本中完全可以通过射线 以及 触摸的时间去计算当前用户操作的事件,这篇文章里的工程最后我是打包在Android上面的,效果挺不错,滑动的效果图不好截取我也不截取了,主要还是文章的书写内容,希望大家学习愉快,雨松MOMO祝大家晚安,哇咔咔,啦啦啦。
- NGUI研究院之自制 Scroll View实现触摸滚动相册效果(四)
- NGUI研究院之自制 Scroll View实现触摸滚动相册效果(四)
- NGUI研究院之自制 Scroll View实现触摸滚动相册效果(四)
- [Unity3d]NGUI- Scroll View实现触摸滚动相册效果
- NGU- Scroll View实现触摸滚动相册效果
- NGUI Scroll View 循环滚动
- NGUI之Scroll View
- 实现滚动相册效果
- NGUI研究院之自制ListView动态增加与删除(三)
- 【NGUI基础知识】——Scroll View(滚动视图)
- NGUI学习之路(2)Scroll View 简洁版【NGUI 2.6.3】
- NGUI -- Scroll View
- 【NGUI】循环Scroll View
- [NGUI]用SrollViewPanel实现相册的滚动。
- 用 jQuery 实现页面滚动(Scroll)效果
- vue实现横向滚动效果(better-scroll)
- Unity3D研究院之IOS实现平面多点触摸(二)
- NGUI之scroll view制作,以及踩的坑总结
- AndroidMainfest.xml的解读
- #300 (div.1 2) B. Quasi Binary
- Redis 2.8.19 安装报错 error: jemalloc/jemalloc.h: No such file or directory解决方法
- 矩形A + B(2524)
- DSOFramer的类别和安装
- NGUI研究院之自制 Scroll View实现触摸滚动相册效果(四)
- [BZOJ2154]Crash的数字表格 && 莫比乌斯反演
- jrockit的dump操作简介
- 面向对象设计原则概述
- 乱七八糟收集
- leetCode : plus one
- ActivityManager
- 字符串操作-随机字符串, 全角转换为半角
- tcpdump抓包工具使用一 (TCP)(mac)