通过拖拽的方式移动面板,在单个界面看到多个视图面板

需要导入UnityEngine.EventSystems;    事件命名空间

进而继承两个重要的接口IBeginDragHandler,IDragHandler,继承接口中的方法必须全部实现,直接右键转到定义,且方法必须为public。

/***
*
*
*
* 滑动面板的移动控制
*
*
*
*
*
*
*
*/
using System.Collections;
using UnityEngine.UI; //UI命名空间
using UnityEngine.EventSystems; //事件系统命名空间
using System.Collections.Generic;
using UnityEngine; public class SliderPanelMovingControl : MonoBehaviour,IBeginDragHandler,IDragHandler { public float FloSliderPanelSmoothPara = 5F; //滑动面板弹性系数
private float _FloStartPositionX; //开始的鼠标X的位置
private float _FloPosX; //鼠标移动的位置偏移量 // Use this for initialization
void Start () { } //开始拖拽
public void OnBeginDrag(PointerEventData eventData)
{
_FloStartPositionX = eventData.position.x;
} //拖拽中
public void OnDrag(PointerEventData eventData)
{
_FloPosX = eventData.position.x - _FloStartPositionX;
//移动面板,需要偏移量
this.transform.Translate(new Vector3(_FloPosX/, , ), Space.World);
} // Update is called once per frame
void Update () {
if (this.transform.localPosition.x > )
{
//移动范围受限处理(左边缘)
this.transform.localPosition = Vector3.Lerp(this.transform.localPosition, new Vector3(, , ), Time.deltaTime * FloSliderPanelSmoothPara);
} if (this.transform.localPosition.x < -)
{
//移动范围受限处理(右边缘)
this.transform.localPosition = Vector3.Lerp(this.transform.localPosition, new Vector3(-, , ), Time.deltaTime * FloSliderPanelSmoothPara);
} //整版“卡位”
if (this.transform.localPosition.x < && this.transform.localPosition.x>=-)
{
this.transform.localPosition = Vector3.Lerp(this.transform.localPosition, new Vector3(-, , ), Time.deltaTime * FloSliderPanelSmoothPara);
}
else if (this.transform.localPosition.x < - && this.transform.localPosition.x >= -)
{
this.transform.localPosition = Vector3.Lerp(this.transform.localPosition, new Vector3(-, , ), Time.deltaTime * FloSliderPanelSmoothPara);
}
else if (this.transform.localPosition.x < - && this.transform.localPosition.x >= -)
{
this.transform.localPosition = Vector3.Lerp(this.transform.localPosition, new Vector3(-, , ), Time.deltaTime * FloSliderPanelSmoothPara);
}
else if (this.transform.localPosition.x < - && this.transform.localPosition.x >= -)
{
this.transform.localPosition = Vector3.Lerp(this.transform.localPosition, new Vector3(-, , ), Time.deltaTime * FloSliderPanelSmoothPara);
}
}
}

之后对滑动面板进行完善:localPosition相对于父对象的位置,需要用到一个重要的函数Vector3.Lerp(),

这是一个差值处理函数,Lerp中有3个参数,(from,to,0-1之间的数),to参数是对位置的限制,相当于是摄像机跟随,很灵活。

UI 滑动面板的移动控制的更多相关文章

  1. 自学Aruba2.3-Aruba Web UI --Configuration面板介绍

    点击返回:自学Aruba之路 自学Aruba2.3-Aruba Web UI --Configuration面板介绍 此文只展示重要面板,大部分通俗易懂就不过多语言介绍, 后期配置实例中再结合理论知识 ...

  2. 自学Aruba2.1-Aruba Web UI --Dashbord面板介绍

    点击返回:自学Aruba之路 自学Aruba2.1-Aruba Web UI --Dashbord面板介绍 本文所有设计的的controller版本信息如下:  Aruba7205 V6.4.4.16 ...

  3. 自学Aruba2.2-Aruba Web UI --Monitoring面板介绍

    点击返回:自学Aruba之路 自学Aruba2.2-Aruba Web UI --Monitoring面板介绍 1. Monitoring面板-NETWORK Network Summary      ...

  4. js进阶 13-7 如何实现滑动面板效果

    js进阶 13-7 如何实现滑动面板效果 一.总结 一句话总结:就是普通的jquery动画中的滑动效果.$('#content').slideToggle().滑动效果的实质是通过调整高度. 1.滑动 ...

  5. jQuery基础(常用插件 表单验证,图片放大镜,自定义对象级,jQuery UI,面板折叠)

    1.表单验证插件——validate   该插件自带包含必填.数字.URL在内容的验证规则,即时显示异常信息,此外,还允许自定义验证规则,插件调用方法如下:   $(form).validate({o ...

  6. 初学java之面板布局的控制

    /* * 联系网格的布控laytout *以一个棋盘为列子吧! */ import javax.swing.*; import java.awt.*; class WindGrid extends J ...

  7. jQuery Easy UI Panel(面板)组件

    panel(面板)组件,跟前面的组件使用方法差点儿都差点儿相同,也是从设置一些面板属性.操作面板触发的事件.我们可针对面板对象的操作方法这三个点去学习. 后面有一些组件要依赖于这个组件. 另一点跟前面 ...

  8. 从电路到UI系列之一——常见显示控制接口的认识

    引入 我之前有两方面的使用屏幕的案例.在做的模块上需要用到屏幕来显示的时候,全是SPI屏幕,并口屏幕和IIC屏幕.在研究了驱动(或者是绘图函数更加合适)之后,我发现其实他们就是直接写显存,这个显存在面 ...

  9. Jquery_效果-隐藏显示、淡入淡出、滑动面板、简单的动画队列

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

随机推荐

  1. java 中 Math类

    package cn.liuliu.com; import java.math.BigDecimal; import java.math.BigInteger; /* * 一.Math类? * * 1 ...

  2. MySQL函数GROUP_CONCAT

    该函数返回带有来自一个组的连接的非NULL值的字符串结果.该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数. 语法结构: GROUP_CONCAT([DISTINCT ...

  3. Multiple websites on single instance of IIS

    序幕 通常需要在单个IIS实例上托管多个网站,主要在开发环境中,而不是在生产服务器上.我相信它在生产服务器上不是一个首选解决方案,但这至少是一个可能的实现. Web服务器单实例上的多个网站的好处是: ...

  4. JarvisOJ Basic veryeasyRSA

    已知RSA公钥生成参数: p = 3487583947589437589237958723892346254777 q = 8767867843568934765983476584376578389 ...

  5. luogu P1816 【忠诚】

    话说许多dalao都采取线段树A题可本蒟蒻不会啊, 暴力的我想出了暴力解法(快排) #include<cstdio> #include<algorithm> using nam ...

  6. [Codeforces1132G]Greedy Subsequences——线段树+单调栈

    题目链接: Codeforces1132G 题目大意:给定一个序列$a$,定义它的最长贪心严格上升子序列为$b$满足若$a_{i}$在$b$中则$a_{i}$之后第一个比它大的也在$b$中.给出一个数 ...

  7. Redis——Linux(centos7.x)下Redi和PHP Redis插件安装——【一】

    Redis 安装 下载地址:http://redis.io/download,下载最新文档版本. $ wget http://download.redis.io/releases/redis-4.0. ...

  8. ElasticHD Linux环境下安装

    ElasticHD Linux环境下安装教程        ElasticHD windows环境下安装教程   上一篇讲了ElasticHD windows环境下安装,这一篇继续说明ElasticH ...

  9. crawlspider_房多多

    框架写起来代码是真的简洁多了,还有就是在requests爬取房多多的时候,无法爬取所有地区,而这个就不受影响 代码请查看码云 运行结果:

  10. socket 10060错误解决方案

    错误提示: socket 10060 无法加载或初始化请求的服务提供程序 解决方案: 打开cmd命令行工具,运行  netsh winsock reset