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

需要导入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. 洛谷 p1219 八皇后

    刚参加完蓝桥杯 弱鸡错了好几道..回头一看确实不难 写起来还是挺慢的 于是开始了刷题的道路 蓝桥杯又名搜索杯 暴力杯...于是先从dfs刷起 八皇后是很经典的dfs问题 洛谷的这道题是这样的 上面的布 ...

  2. nginx反向代理(动静分离)

    使用反向代理(动静分离)可以让nginx专注静态内容,把动态请求交给apache来处理,发挥各自的优势,而且整个架构更加清晰: 这里假设你已经搭建好了nginx环境; 为了简单起见,就不用源码编译安装 ...

  3. Socket初见

    前端代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <t ...

  4. CodeForces - 1051D Bicolorings(DP)

    题目链接:http://codeforces.com/problemset/problem/1051/D 看了大佬的题解后觉着是简单的dp,咋自己做就做不来呢. 大佬的题解:https://www.c ...

  5. Deepfakes:AI换脸技术自制明星XX片

    ps:亮瞎狗眼 去年开始就在国外网站上比较火的项目了,通过Deepfakes技术可以将视频中的人脸换成自己喜欢的明星, 当时就有不少人制作了换脸视频,其中大部分是替换了XX片的女主角. 国外网站Red ...

  6. kubernetes 容器挂载 ceph rbd 卷的平滑扩容方法

    https://blog.csdn.net/aixiaoyang168/article/details/79120095

  7. C Looooops POJ - 2115 (exgcd)

    一个编译器之谜:我们被给了一段C++语言风格的循环 for(int i=A;i!=B;i+=C) 内容; 其中所有数都是k位二进制数,即所有数时膜2^k意义下的.我们的目标时球出 内容 被执行了多少次 ...

  8. Day24-ModelForm操作及验证

    Day23内容回顾--缺失,遗憾成狗. 一:Model(2个功能) -数据库操作: -验证,只有一个clean方法可以作为钩子. 二:Form(专门来做验证的)--------根据form里面写的类, ...

  9. pip 使用

    PIP的使用 作用 管理python的标准第三方库 安装 sudo apt-get install python3-pip 常用命令 [1] 安装软件包 pip3 install [package] ...

  10. Java 元编程及其应用

    Java 元编程及其应用 首先,我们且不说元编程是什么,他能做什么.我们先来谈谈生产力. 同样是实现一个投票系统,一个是python程序员,基于django-framework,用了半小时就搭建了一个 ...