首页 > 其他分享 >unity 点击,长按和双击

unity 点击,长按和双击

时间:2023-11-03 18:56:57浏览次数:33  
标签:调用 点击 unity UI 事件 OnPointerDown 监测 双击

转自:Unity 单击、双击、长按事件处理_unity button长按事件_司军礼的博客-CSDN博客

原理:

1.将操作抽象成三个类:ClickButton,DoubleClickButton,PressButton并实现各自的生命周期函数:

ClickButton:OnPointerDown启动监测,OnPointerUp:调用点击成功事件

DoubleClickButton:OnPointerDown启动监测,OnPointerClick:启动计时器,clickCount++,clickCount==2时调用成功事件,Update:检查持续时间,大于最长空闲时间调用失败事件。

PressButton:OnPointerDown启动监测,启动计时器,OnPointerUp:调用失败事件,Update:检查持续时间,大于长按设定时间调用成功事件。

2.ClickEvent

listenerList:注册进这个物体的 输入监测,在生命周期函数中循环调用这里面的输入监测函数。

OnReceive(bool success, IClickListener listener):

success:判断监测是失败还是成功

如果监测返回成功:还需要监测是否还有正在运行的监测(还没检测完),如果有就把这个事件缓存下来,等其他的监测完事后调用(如果其他的也是成功就会被覆盖掉,只保留最后的响应事件),等所有监测都返回结果的时候执行缓存下来的事件,也就实现了长按和双击中断单击时间。

我们项目中的实现方法:

由于项目较老,我们用的还是ugui那套,实现长按中断点击事件的方式是:

长按->调用长按的逻辑->出UI->UI挡住长按的UI(本质是让OnPointerUp方法失效)->中断OnPointerClick

标签:调用,点击,unity,UI,事件,OnPointerDown,监测,双击
From: https://www.cnblogs.com/mcyushao/p/17808200.html

相关文章

  • 从FrameDebugger看Unity渲染
     Unity如何渲染一个3D+2D的游戏画面,今天通过FrameDebugger来看下Unity内置渲染管线的渲染策略, 后续再出一些URP渲染管线相关的文章。    Unity渲染场景的几个主要部分    Unity内置渲染管线是基于摄像机来进行渲染的,每个摄像机按照摄像机的渲染顺序来依次渲染,渲......
  • echarts监听legend的点击事件
    1、echarts监听legend的点击事件myChart.on('legendselectchanged',function(params){console.log(params);});转自:echarts问题--点击legend不全部隐藏,监听最后一个legend点击事件_echarts点击图例不隐藏_哥要掉线了的博客-CSDN博客 ......
  • vue3 -点击按钮进入新的页面
    一、调用页面//路由import{useRouter}from'vue-routerlet$router=useRouter()//车组调整页面consthandleCar=(row:any)=>{ $router.push({path:"/test/edit",query:{setCode:row.setCode,lineName:row.lineName}})}二、新打开的页面importuseTagsViewSt......
  • Unity DOTS系列之Struct Change核心机制分析
    最近DOTS发布了正式的版本,我们来分享一下DOTS里面StructChange机制,方便大家上手学习掌握UnityDOTS开发。基于ArchType与Chunk的Entity管理机制  我们回顾以下ECS的内存管理核心机制,基于ArchType+Chunk的Entity管理模式。每个Entity不直接存放数据,数据全部存放到Component......
  • Unity-Android 权限相关问题
    1.生成AndroidManifestFile->buildSetting->playerSetting->Android->publishingSettings权限添加位置:<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android......
  • Unity从入门到主程学习路线(内含学习资料)干货超全
    写在最前很多小伙伴想进阶Unity主程,进阶Unity架构师,不知道要学哪些知识,今天给大家分享一下比较完整的知识体系,Unity学习路线,介绍一些有干货的博主与教程,给大家做参考。不管你是已经工作了,还是正在学习中的Unity初学者,如果你想在游戏开发行业中有更高更远的发展,请用五分钟阅读......
  • UnityShader入门精要第十四章-非真实感渲染原理总结
    前言开发中常常遇到的一个问题就是画面风格。接下来要介绍的就是统一修改画面风格的手段:非真实感渲染。这里同样只总结原理。非真实感渲染非真实感渲染(Non-PhotorealisticRendering,NPR)的方法来渲染游戏画面。非真实感渲染的一个主要目标是,使用一些渲染方法使得画面达到和......
  • BIP保存前出现弹框 阻止保存 点击修改后,再继续保存事件
    viewModel.on("beforeSave",function(args){letpromise=newcb.promise();cb.utils.confirm(title:"是否保存?",okText:"修改",cancelText:"不修改",function(){if(true){promise.rej......
  • 基于Unity整合BEPUphysicsint物理引擎实战
    上一节我们详细的讲解BEPUphysicsint的物理事件。此物理引擎会产生了碰撞事件与非碰撞事件,碰撞事件大家好理解,非碰撞事件例如:物理Entity的update事件,Entity的activation/deactivation事件等。本节课来实战如何编译BEPUphysicsint源码到自己的项目,如何整合物理引擎与Unity图......
  • 为什么这么NB?huatuo革命Unity热更新
    最近huatuo(华佗)热更新解决方案火爆了unity开发圈,起初我觉得热更新嘛,不就是内置一个脚本解释器+脚本语言开发,如xLua,ILRuntime,puerts。Huatuo又能玩出什么花样,凭什么会这么NB,引起了那么多程序员的关注与称赞呢?带着这些问题我详细的看了huatuo的资料,阅读了示例项目+huatuo源码......