Timer Class(计时器类别)
1.实现double trigger
2.long press长按
紫色的部分(IsExteding)是要侦测用户是否按下第二次
1.double trigger:
新建MyTimer时间类:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MyTimer{/// <summary>/// 状态/// </summary>public enum STATE{IDLE,RUN,FINISHED}public STATE state;public float duration = 1.0f; //要算多久 缺省1s后停止private float elapsedTime = 0; //过去的时间 初始值是0public void Tick(){if(state == STATE.IDLE){}else if (state == STATE.RUN){elapsedTime += Time.deltaTime;if (elapsedTime >= duration){state = STATE.FINISHED;}}else if (state == STATE.FINISHED){}else{Debug.Log("Error");}}public void Go(){elapsedTime = 0;state = STATE.RUN;}
}
利用MyButton得到状态:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MyButton {/// <summary>/// 三种状态(缺省为false)/// </summary>public bool IsPressing = false;public bool OnPressed = false;public bool OnReleased = false;public bool IsExtending = false;public float extendingDuration = 0.15f;private bool curState = false; //目前的状态private bool lastState = false; //前一次状态private MyTimer extTimer = new MyTimer();public void Tick(bool input){// StartTimer(extTimer, 1.0f);extTimer.Tick();curState = input;IsPressing = curState;OnPressed = false;OnReleased = false;if(curState != lastState){if(curState ==true ){OnPressed = true;}else{OnReleased = true;StartTimer(extTimer, extendingDuration);}}lastState = curState;if (extTimer.state == MyTimer.STATE.RUN){IsExtending = true;}else{IsExtending = false;}}private void StartTimer(MyTimer timer,float duration){timer.duration = duration;timer.Go();}
}
最后在joystick里面显示出来:
//print(buttonA.IsExtending);//延长的时间//print(buttonA.IsExtending || buttonA.IsPressing);//按键的时间加延长的时间为trueprint(buttonA.IsExtending&&buttonA.OnPressed );
这样首先实现了double trigger判断。
Timer Class(计时器类别)相关推荐
- boost:timer,计时器
C++一直缺乏对时间和日期的处理能力,而boost使用提供了三种解决方案: timer:和平台无关 date_time:和平台无关 chrono:和平台相关 这里我们来学习timer库 timer是一 ...
- 17、Java Swing Timer:计时器组件
计时器(Timer)组件可以在指定时间间隔触发一个或多个 ActionEvent. 设置计时器的过程包括创建一个 Timer 对象,在该对象上注册一个或多个动作侦听器,以及使用 start() 方法启 ...
- Java之Timer类计时器提醒功能
Timer类:依赖系统日期,提供计时器通知服务. schedule(TimerTask task,Date time):安排在指定的时间执行指定的任务. TimerTask:任务类,任务实现方法为抽象 ...
- Java计时器Timer和TimerTask用法总结(源码)
在家学技术实在是不好坚持,心里老是想给自己放个假,但是现在俺又太菜,又想赶赶技术.前天做一个五子棋程序, 遇到了计时器功能的需求,但是这个我没用过,就总结一下吧,不过虽然是会用了,但是和swing的代 ...
- Windows Service下的Timer计时器的使用
在C#中提供了三种类型的计时器: 1.基于 Windows 的标准计时器(System.Windows.Forms.Timer) 2.基于服务器的计时器(System.Timers.Timer) 3. ...
- Android简单计时器详解(Timer)
Android计时器详解(Timer) 在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Tim ...
- android 计时器 三种,Android计时器的三种实现方式(Chronometer、Timer、handler)
本文实例为大家分享了Android计时器的三种方法,具体内容如下 目录: 1.借助Timer实现 2.调用handler.sendMessagedely(Message msg, long delay ...
- Matlab——Timer对象(多线程编程)计时器
Timer对象和 Dynamic关于Timer的教程. 相信大家对Timer对象的各个属性和其字段有一定了解,更多的信息可在帮助文件中获得. 这里再总结一下,仔细看Timer对象的句柄我们可以发现,T ...
- Boost之timer库
摘要 : Boost中使用timer和date_time库来完美地解决了C++无法高效地处理时间和日期的问题.在此文中,介绍timer库:而date_time库在后续博文中介绍. ...
- python简易图形-python图形用户界面(四):教你实现一个简单实用的计时器
前言 本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑.如果觉得好可以分享转发,有问题的地方也欢迎指出,在此先行谢过. 今天 ...
最新文章
- 为什么使用LM386可以直接收听调频电台节目?
- 经验总结:按需加载JS和css
- open cv提取图片特征值_基于VGG16网络提取Flicker8K数据集图像特征
- Django框架(18.Django中的自定义错误500页面和不存在404页面)
- html中通过定位 实现下拉,JS+CSS相对定位实现的下拉菜单
- 使用jmap命令手动导出映像文件?
- ElasticSearch多shard场景相关度打分不准确问题
- JAVA设计模式之抽象工厂模式
- python axes函数_matplotlib中的axes.flat做什么?
- Linux常用命令——关机重启命令
- 【Python】python list 迭代删除
- SDRAM内存条时序特点
- CSS 3之网页背景颜色
- php使用halt中断输出
- 初中生学计算机编程的好处,为什么初中生更加适合学习计算机编程?
- docker镜像指定安装源_如何修改docker pull镜像源
- 纵观 Excel 演化史,开发者如何通过“表格技术”提升企业生产力
- 输入年份判断是不是闰年
- OpenCV 中cv2.threshold详解,(大白话版)
- 信息资源管理【四】之 信息资源内容管理