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

需要导入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. Appium之开发计算器自动化测试脚本Demo

    1.依赖包 <!-- https://mvnrepository.com/artifact/io.appium/java-client --> <dependency> < ...

  2. Lodop文本项相对于文本框居中 两端对齐

    Lodop中ADD_PRINT_TEXT默认内容是相对于文本框居左的,如果想要设置相对于文本框居中,可用如下语句.还有一种是两端对齐,可以让内容的两端阿和文本框的最左和最右端对齐,文本项内容布满文本框 ...

  3. 神烦之float

    另外一篇文章 : css float 一 历史 Float的设计初衷仅仅是:文字环绕效果(向word中的文字环绕效果) 二 特性 1.包裹性:块级元素如果不设置float,它默认会撑满整个屏幕,而如果 ...

  4. centos7优化启动项,关闭一些不必要开启的服务

    CentOS7已不再使用chkconfig 管理启动项 使用 systemctl list-unit-files 可以查看启动项 systemctl list-unit-files | grep en ...

  5. LVS (Linux Virtual Server) 负载均衡

    [大型网站技术实践]初级篇:借助LVS+Keepalived实现负载均衡   一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服 ...

  6. maven 当两个工程合并后 他的classpath也合并了

    maven   当两个工程合并后 他的classpath也合并了  也就是说资源文件环境合并了

  7. TLS/SSL

  8. python----函数初识

    一,什么是函数? 现在有这么个情况:python中的len方法不让用了,你怎么办? 来测试一下‘hello word’ 的长度: s1 = "hello world" length ...

  9. 洛谷P1107[BJWC2008]雷涛的小猫题解

    题目 这个题可以说是一个很基础偏中等的\(DP\)了,很像\(NOIpD1T2\)的难度,所以这个题是很好想的. 简化题意 可以先简化一下题意,这个题由于从上面向下调和从下向上爬都是一样的,所以我们就 ...

  10. ftp利用脚本添加本地用户

    指定用户名,家目录,密码,顺序不可颠倒.eg: sh 脚本名 用户名 家目录 密码 #!/bin/bash # set -e ] //判断给定参数是否为三个 homepath=$ password=$ ...