两种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) { ...
随机推荐
- 基于Spark的电影推荐系统(实战简介)
写在前面 一直不知道这个专栏该如何开始写,思来想去,还是暂时把自己对这个项目的一些想法 和大家分享 的形式来展现.有什么问题,欢迎大家一起留言讨论. 这个项目的源代码是在https://github. ...
- 阿里云服务器CentOS6.9 tomcat配置https安全访问
应用场景 上线微信小程序的时候,域名要求https安全格式,否则获取数据异常. 第一步.SSL证书获取 获取SSL证书方式很多种,包括网页生成.工具生成等,这里我使用阿里云平台获取免费ssl证书的方法 ...
- 【ASP.NET 基础】WCF入门教程一(什么是WCF)?
一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...
- request.getPathInfo()的作用
项目中使用该方法来获取URL,但不知道获取的URL的起始: 如:http://localhost:8080/web_hrs/Action/这里可以是任何东西 ---->request.getP ...
- 快学Scala 第六课 (类getter和setter)
类getter和setter 如果字段定义是private[this], 字段是私有的,但不生成getter和setter方法. class Counter { private[this] var v ...
- 常用css总结
个人博客: https://chenjiahao.xyz 1.让网站快速变灰 html { filter: grayscale(100%);//IE浏览器 -webkit-filter: graysc ...
- liunx下安装MySQL
1.安装依赖包:yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bisonyum install -y perl-Module-Insta ...
- jsp JavaBean el表达式
JSP三大指令 一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info="xx ...
- 【DP合集】合并 union
给出一个 1 ∼ N 的序列 A ( A 1 , A 2 , ..., A N ) .你每次可以将两个相邻的元素合并,合并后的元素权值即为 这两个元素的权值之和.求将 A 变为一个非降序列,最少需要多 ...
- 本人亲测-SSM环境搭建(使用eclipse作为示例,过程挺全的,可作为参考)
本人亲测-SSM环境搭建(使用eclipse作为示例,过程挺全的,可作为参考) 本人亲测-SSM环境搭建(使用eclipse作为示例,过程挺全的,可作为参考) 本人亲测-SSM环境搭建(使用eclip ...