两种unity双击事件
有时候需要用到双击事件,而unity未提供双击控件,在此提供两种双击事件方法,进攻参考:
1)此方法为通过unityevent来实现
首先新建image(或其他不带点击事件的控件),添加如下脚本,然后就可以像button控件单击事件一样添加双击方法,设定双击间隔为0.5s
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems; public class DBlick1 : MonoBehaviour,IPointerDownHandler{
[SerializeField]
UnityEvent doubleClick = new UnityEvent(); public float Interval = 0.5f; private float firstClicked = ;
private float secondClicked = ; public void OnPointerDown(PointerEventData eventData)
{
secondClicked = Time.realtimeSinceStartup; if(secondClicked-firstClicked<Interval)
{
doubleClick.Invoke();
}
else
{
firstClicked = secondClicked;
}
} // Use this for initialization
void Start () { } // Update is called once per frame
void Update () { }
}
2)通过button在button绑定的方法中触发
public float Interval = 0.5f;
private float firstClicked = ;
private float secondClicked = ;
public void OnDoubleClicked()
{
secondClicked = Time.realtimeSinceStartup;
if (secondClicked - firstClicked < Interval)
{
print("clicked");
}
else
{
firstClicked = secondClicked;
}
}
3)触屏简单方法
(最近刚发现的触屏双击方法,更新与2018-4-18)
采用input类方法即
if (Input.GetTouch().tapCount == )
GetTouch(0)表示第一次点击屏幕,tapCount表示点击次数,上述即为如果点击屏幕等于两次即。。。。。
PS:
1)第一种方法适合存在众多双击事件时使用,第二种则适合只有一个单击事件时使用,两者并无太大差别,均可使用,适合与否只是从代码量上考虑
2)两种方法均存在一个问题,即当鼠标连续点击三次时,由于逻辑的问题,事件会触发两次,可以增加一个变量来进行控制,在此只是提供两种双击事件的思路
上述问题2)解决(同时通过更改clickedCount可实现三点击,四点击等)
public int clickedCount = ;
public float clickedInterval = 0.5f; private float lastClickedTime = ;
private float count = ; public void OnClicked()
{
float interval = Time.realtimeSinceStartup - lastClickedTime;
if(interval <= clickedInterval)
{
count++;
if(count==clickedCount-)
{ //TODO:
}
}
else
{
count = ;
}
lastClickedTime = Time.realtimeSinceStartup;
}
两种unity双击事件的更多相关文章
- js 函数定义的两种方式以及事件绑定(扫盲)
一.事件(例如:onclick)绑定的函数定义放在jsp前面和放后面没影响 二. $(function() { function func(){}; }) onclick通过如下方式绑定事件到jsp中 ...
- Cocos2d-x 处理双击事件的两种方法
在cocos2d-x的开发过程中有些时候也是需要用到双击的事件处理,那么由于在cocos2d-x中没有实现对双击的事件的处理,那么我们就需要自己用代码实现. 下面介绍两种方式实现双击事件的处理. (一 ...
- Android实现双击事件的两种方式
Work around的方法是先监听onTouch事件来监听连续点击次数,每次点击都布置一个间隔时间的延时任务,延时任务执行时判断间隔内是否还有点击,如果没有则发布点击次数,重置计数. 实现代码如下: ...
- 一、winForm-DataGridView操作——控件绑定事件的两种方法
在winForm窗体中绑定(注册)事件的方法有两种: 一.绑定事件 双击控件,即进入.cs的代码编辑页面,会出现 类似于“ private void 控件名称_Click(object sender, ...
- unity调用Android的两种方式:其二,调用aar包
上一篇我们讲了unity如何调用jar包 http://www.cnblogs.com/Jason-c/p/6743224.html, 现在我们介绍一下怎么生成aar包和unity怎么调用aar 一. ...
- Angular JS中双击事件ng-dblclick避免同时触发两次单击事件ng-click的解决方案
有些需求中,需要一个元素上既有双击事件,也有单击事件,而两者实现的效果不一样. 这时可以使用ng-dblclick与ng-click来实现需求,但是要避免浏览器将双击事件误认为是两次单击事件,从而出现 ...
- 关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法
一.自定义dialog. 二.实现dialog里view的事件监听 1.自定义dialog比较简单.在实例化new的时候,加入样式,布局就行了.或者重写dialog. 2.实现dialog里view的 ...
- Unity中有两种Animation Clip
http://blog.csdn.net/zzxiang1985/article/details/51291861 在Unity中,我们有两种方法创建Animation Clip. 一种(后面简称方法 ...
- 阻止事件冒泡两种方式:event.stopPropagation();和return false;
jQuery提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function (event) { ...
随机推荐
- 性能测试:Jmeter-Beanshell请求加密实例
进行性能测试时,有可能遇到一种场景:接口请求由于安全问题,需要进行加密发送. 这种场景下,使用Jmeter实现性能测试,则也需要使用同样的加密规则发送请求报文. 要实现此类性能测试有几种策略: 直接去 ...
- 为什么不使用SOAP进行点对点联系,而使用ESB呢
图片截至: https://www.zhihu.com/question/29475224
- Activiti(1) - TaskRuntime API 入门
目录 TaskRuntime API pom.xml 注册TaskRuntime实例 角色与分组 任务事件监听器 DemoApplication 源码 Activiti 是一个自动化工作流框架.它能帮 ...
- .Net Core 商城微服务项目系列(十二):使用k8s部署商城服务
一.简介 本篇我们将会把商城的服务部署到k8s中,同时变化的还有以下两个地方: 1.不再使用Consul做服务的注册和发现,转而使用k8s-dns来实现. 2.不再使用Ocelot作为业务网关,使用T ...
- 经典案例复盘——运维专家讲述如何实现K8S落地(摘抄)
以下是运满满K8s容器化进程记录,摘抄一下,方便以后查阅. 背景介绍 运满满自开始微服务改造以来,线上线下已有数千个微服务的 Java 实例在运行中.这些 Java 实例部署在数百台云服务器或虚机上, ...
- vue平行组件传值
平行组件传值 通过平行组件传值可以实现任何情境下的传值,包括(父传子,子传父) 代码示例 <!DOCTYPE html> <html lang="en"> ...
- VR应用评测 - Google Spotlight Story: Sonaria
Google Spotlight Story: Sonaria 一个5min左右的VR小电影,坐姿观看,但是用户其实可以移动+旋转视角.画面很抽象,所有的物体都由基本的单色几何形状组成,主角是两个一公 ...
- Kafka 学习笔记之 Consumer API
Kafka提供了两种Consumer API High Level Consumer API Low Level Consumer API(Kafka诡异的称之为Simple Consumer API ...
- Java的一些基础知识深入
1.浅析Java中的final关键字: 2.Java中的static关键字解析: 3.探秘Java中String.StringBuilder以及StringBuffer: 4.Java内部类详解: 5 ...
- 服务网关Spring Cloud Zuul
Spring Cloud Zuul 开发环境 idea 2019.1.2 jdk1.8.0_201 Spring Boot 2.1.9.RELEASE Spring Cloud Greenwich S ...