基于Unity3D的滑动面板的实现
来源:互联网 发布:linux漏洞 在哪 编辑:程序博客网 时间:2024/06/04 23:30
滑动面板在制作帮助界面时经常被用到,功能如图所示:
代码如下:
using UnityEngine;using System.Collections;using UnityEngine.EventSystems;using System.Collections.Generic;using UnityEngine.UI;public class SilderPanel : MonoBehaviour,IDragHandler,IEndDragHandler{//显示信息的Textpublic Text pageNumberText;//滑动是图片移动的速度public float dragSpeed = 10;//滑到下一页的判断条件public float offsetSpeed = 3;//移动到下一页的速度public float moveSpeed = 10;//子页总数private int totalPageNumber=5;//当前滑动的偏移量private Vector2 delta;//是否滑倒下一页private bool isHoming = false;//当前的页数private int index = 0;//父物体以计算相对位置private Transform parentTF;//介绍页private List< Transform> childArrayList; void Start() { parentTF = this.transform.parent;totalPageNumber = this.transform.childCount;childArrayList = new List<Transform> (totalPageNumber);for (int i = 0; i < totalPageNumber; i++) {childArrayList.Add (this.transform.GetChild (i));}pageNumberText.text = (index + 1) + "/" + totalPageNumber; }void Update(){Homing();} //1.拖拽时移动 public void OnDrag(PointerEventData eventData) { delta = eventData.delta; this.transform.Translate(delta.x * Time.deltaTime * dragSpeed, 0, 0); } //2.归位 public void OnEndDrag(PointerEventData eventData) { //如果速度达到1 if (Mathf.Abs(delta.x) >= offsetSpeed) { //归位 //鼠标向左移动 , 物体向左移动 if (delta.x < 0) index++; else index--; //限制索引范围 index = Mathf.Clamp(index, 0, childArrayList.Count - 1); } isHoming = true; pageNumberText.text = (index + 1) + "/" + totalPageNumber; }//3.呈现界面 private void Homing() { if (isHoming) { Vector3 targetPosition = parentTF.position - childArrayList[index].position + this.transform.position; this.transform.position = Vector3.Lerp(this.transform.position, targetPosition, Time.deltaTime * moveSpeed); //如果当前面板 接近 目标位置 if ((this.transform.position - targetPosition).sqrMagnitude<1) { this.transform.position = targetPosition; isHoming = false; } } }}工程下载地址:http://download.csdn.net/download/yongshuangzhao/10162471
阅读全文
1 0
- 基于Unity3D的滑动面板的实现
- 基于HTML5实现的矢量TP-LINK面板
- 基于Unity3D的对象池的实现
- 基于Unity3D的虚拟摇杆的实现
- 基于Unity3D的相册系统的实现
- 基于Unity3D的循环路径的实现
- 基于jQuery实现的 “滑动门”
- 表情面板的实现
- Unity3D 之 console面板的停靠
- Unity3d 基于NGUI的虚拟摇杆实现
- Unity3D基于UGUI的虚拟摇杆实现
- 可拖动的滑动面板和Menu的实现(SlidingUpPanelLayout)
- Unity3D使用UIPlayTween和TweenPosition实现面板的动态弹出与弹入
- 基于Unity3D的JSON文件的存储的实现
- 基于Unity3D的Xml文件的存储的实现
- js实现的切换面板
- react实现的面板组件
- angular实现的面板组件
- 第一个SSH项目总结
- SQL之解决where 1=1 问题及优化多条件查询
- leetcode 551. Student Attendance Record I
- Ubuntu16.04 gedit 中文乱码
- (零) 设计模式开端
- 基于Unity3D的滑动面板的实现
- ECharts官方教程(六)【在图表中加入交互组件】
- ZOJ
- AI-深度学习框架-应用数学和机器学习基础
- 文本挖掘之文本分类
- ECharts官方教程(七)【移动端自适应】
- bootstrap使用
- 设计模式之工厂模式
- java面试总结,非常值得一看