挂到ScrollRect组上,模拟手机滑屏功能

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using DG.Tweening;
using DG.Tweening.Core;
using DG.Tweening.Plugins.Options;/// <summary>
/// 鼠标滑动 模仿手机桌面
/// </summary>
public class UIDragScroll : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{ScrollRect scrollRect;Scrollbar scrollbar;//拖动动画TweenerCore<float, float, FloatOptions> tweenerCore;//每页的大小float itemSize;//内容页Transform content;//孩子个数int childCount;//每个step的valuefloat[] stepValueArr;private void Start(){scrollRect = GetComponent<ScrollRect>();scrollbar = scrollRect.horizontalScrollbar;itemSize = scrollRect.viewport.rect.width;content = scrollRect.content;childCount = content.transform.childCount;stepValueArr = new float[childCount];for (int i = 0; i < stepValueArr.Length - 1; i++){stepValueArr[i] = i * (1f / (childCount - 1));}stepValueArr[stepValueArr.Length - 1] = 1;}public void OnPointerDown(PointerEventData eventData){if (tweenerCore != null){tweenerCore.Kill();tweenerCore = null;}}public void OnPointerUp(PointerEventData eventData){float currValue = scrollbar.value;float middleValue;float targetValue = 1;if (currValue >= 1){targetValue = 1;}else{for (int i = 0; i < stepValueArr.Length - 1; i++){middleValue = (stepValueArr[i] + stepValueArr[i + 1]) / 2;if (currValue <= middleValue){targetValue = stepValueArr[i];break;}}}float val = scrollbar.value;tweenerCore = DOTween.To(() => val, x => val = x, targetValue, 0.5f).OnUpdate(() =>{scrollbar.value = val;});}
}

UNITY 模拟手机滑屏功能相关推荐

  1. 利用swiper和css3实现手机滑屏与动画效果

    很多人前端工程师在做一些手机滑屏类的落地窗页面,并且带有一堆动画时都是一脸懵逼,好复杂啊,js该怎么写?一堆问题,但是其实想实现这些功能非常简单.只需要大家灵活运用swiper和css3的animat ...

  2. app内录屏开发 ios_iOS 一行代码实现手机录屏功能

    iOS9以后苹果推出ReplayKit框架,专门用来实现手机录屏功能,所以想要实现录屏功能再也不需要配置第三方了,下面是我实现的效果图,敬请欣赏!

  3. php手机投屏功能,电脑手机投屏怎么操作设置?

    把手机上的电视剧投放在电视上你会的话,那么把手机上的文件投放在电脑呢?电脑手机投屏怎么操作设置?不用数据线一键传输,也不用下载,方便快捷哦,下面就跟着小编来看看吧. 手机.电脑是我们生活中不可或缺的电 ...

  4. 小米手机录屏功能在哪?图文教学,轻松解决

    相信有很多小伙伴使用的手机正是小米手机.在使用小米手机的时候,有时候需要对手机屏幕进行录制,却发现怎么样都找不到小米手机的录屏功能.小米手机的录屏功能在哪?今天,小编就带大家来看看. 小米手机录屏功能 ...

  5. win10无线投屏_Win10系统自带手机投屏功能真的能取代投屏器吗?

    Win10系统有自带的手机投屏功能你听说了吗?据说投屏简单快速.电脑与手机都无需下载第三方软件.更无需任何额外的费用. 这么好的投屏功能小编当然要来探索探索啦. 首先,我们来看看它的投屏步骤是否繁琐. ...

  6. 手机投屏功能说明及开发代码

    手机投屏功能说明 手机投屏--主要是实现小屏转大屏功能,可以将手机上的图片,音频,视频,文档无线同步到HDMI接口电视机和投影从上大屏观看,适用于家庭娱乐,商务会议,教学培训等.应用场景: 一.将手机 ...

  7. 小米android 7 分屏,官方确认!小米手机分屏功能7月上线:支持多款机型

    今天下午的新品发布会,小米发布了第二代大屏续航手机小米Max 2,采用6.44英寸大屏.5300mAh容量电池(支持给其它设备充电),主摄像头使用了和小米6一样的索尼IM386传感器.售价方面,,4G ...

  8. 模拟手机通讯录联系人功能

    实训:模拟手机通讯录联系人功能 package com.qf.day43_02; import android.app.Activity; import android.app.AlertDialog ...

  9. 小米手机怎么录屏?小米手机录屏功能在哪?

    小米手机怎么录屏?当你想要在你的小米手机中录制一段视频的时候,该怎么去做呢?小米手机录屏功能在哪? 相信很多人喜欢用小米,一个很大的原因便是功能丰富多样的MIUI.本期要给大家分享的是如何用小米手机进 ...

最新文章

  1. LoadRunner测试结果分析
  2. 解决了一些RSS阅读器不能查看图片的问题
  3. 怎么做 慢充 话费_高佣联盟充值话费省钱小技巧教程
  4. Dictionary转为Model实例
  5. java打印整个向量_Java中Vector向量的用法
  6. einops.rearrange、repeat、reduce==>对维度进行操作
  7. mysql inet addr_InetAddress类的使用
  8. android sdk离线安装
  9. 《An Attentive Survey of Attention Models》阅读笔记
  10. dpdk优化(转)???
  11. java当前时间长整数值_在Java中获取当前年份的整数值
  12. VB.net小技巧——VB中调用matlab
  13. 【学习笔记】吉司机线段树
  14. matlab保存图片saveas,matlab saveas 图片
  15. GZHU - 1523 疯狂钻石 (完全背包)
  16. ArcEngine ISymbol效果预览
  17. 设计师:设计师之家装材料知识之家装八项(吊顶材料、门窗材料、五金材料、墙面材料、地面材料、胶粘材料、油漆材料、水电材料等)之详细攻略
  18. mysql ip访问限制解除
  19. ks live room danmu
  20. 594. Longest Harmonious Subsequence

热门文章

  1. 深度学习模型压缩与优化加速
  2. linux 自启动 快捷键,linux自定义快捷键、文件打开方式、文件快捷方式、启动器及开机启动...
  3. 杀戮空间2服务器协议,杀戮空间2 云服务器搭建
  4. css画企鹅,知识点
  5. 2021年化工自动化控制仪表考试题及化工自动化控制仪表考试试卷
  6. scikit-learn笔记
  7. FlowJO X 流式补偿调整
  8. Linux启动流程详解
  9. python语言求球的体积,改进蒙特卡罗程序求高维球体体积。(Python)
  10. 【嵌入式】上学期末整理的一些知识点