Unity vp_Timer VisionTimer使用方法
不多讲,直接上代码
void Start()
{
CreatingTimerHandles();
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyUp(KeyCode.Space))
PauseRace();
if (Input.GetKeyUp(KeyCode.A)) CancelingTimerEvents();
}
//调度事件
void Scheduling()
{
//1秒后调用SomeMethod()
vp_Timer.In(1.0f, SomeMethod);
}
void SomeMethod()
{
Debug.Log("调用");
}
//重复调用
void Iterations()
{
//1秒后调用,间隔1秒调用5次
vp_Timer.In(1.0f, SomeMethod, 5);
//0.1秒后调用,间隔1秒调用3次
vp_Timer.In(0.1f,SomeMethod,3, 1);
//0.1秒后调用,间隔1秒调用无限次
vp_Timer.In(0.1f, SomeMethod, 0, 1);
}
//带参数调用
void Arguments()
{
vp_Timer.In(1.0f, MethodWithSingleArgument, "Hello World!");
}
void MethodWithSingleArgument(object o)
{
string s = (string)o;
Debug.Log(s);
}
//带多个参数调用
void MultipleArguments()
{
vp_Timer.In(1.0f, MethodWithMultipleArguments,new object[] { "December", 31, 2012 });
}
void MethodWithMultipleArguments(object o)
{
object[] arg = (object[])o;
Debug.Log("Month: " + (string)arg[0]
+ ", Day:" + (int)arg[1]
+ ", Year:" + (int)arg[2]);
}
//委托
void Delegates()
{
//方式一
vp_Timer.In(1.0f, delegate () { Debug.Log("Hello World!"); });
//方式二
vp_Timer.In(0.01f, new vp_Timer.Callback(() =>
{
Debug.Log("Hello World!");
}), 0, Timer);
}
//具有参数的委托
void DelegatesWithArguments()
{
float incomingDamage = 242.0f;
vp_Timer.In(1.0f, delegate (object o)
{
Debug.Log((string)o);
}, incomingDamage);
}
//具有多个参数的委托
void DelegatesWithMultipleArguments()
{
string month = "December";
int day = 31;
int year = 2012;
vp_Timer.In(1.0f, delegate (object o)
{
object[] arg = (object[])o;
Debug.Log("Month: " + (string)arg[0]
+ ", Day:" + (int)arg[1]
+ ", Year:" + (int)arg[2]);
}, new object[] { month, day, year });
}
//取消计时器事件
void CancelingTimerEvents()
{
// vp_Timer.CancelAll();
vp_Timer.CancelAll("SomeMethod");
}
//开始计时器事件
private vp_Timer.Handle m_RaceTimer = new vp_Timer.Handle();
void BeginRace()
{
vp_Timer.Start(Timer1);
}
//暂停计时器事件
private vp_Timer.Handle m_RaceTimer1 = new vp_Timer.Handle();
void PauseRace()
{
if (Timer1.Paused)
{
Timer1.Paused = false;
}
else
{
Timer1.Paused = true;
}
}
//创建计时器句柄
private vp_Timer.Handle Timer1 = new vp_Timer.Handle();
private vp_Timer.Handle Timer = new vp_Timer.Handle();
void CreatingTimerHandles()
{
//---示例1:在20秒内执行“某种方法”, //,但如果用户按下空间,则取消
vp_Timer.In(0.1f, SomeMethod,0, Timer1);
//---示例2:执行“某种方法”的5次迭代, //,但在3秒后取消 私人vp_Timer。处理计时
//vp_Timer.In(0.1f, SomeMethod, 5, 1, Timer);
//vp_Timer.In(3, delegate () { Timer.Cancel(); });
}
//计时器判断
private vp_Timer.Handle Timer2 = new vp_Timer.Handle();
void blockingTimerEvents()
{
vp_Timer.In(0.4f, SomeMethod, Timer2);
if (!Timer2.Active) // /防止重新启动“计时器”
vp_Timer.In(1.5f, SomeMethod, Timer2);
}
}
Unity vp_Timer VisionTimer使用方法相关推荐
- UNITY调用安桌方法出现 JNI: Init'd AndroidJavaClass with null ptr!
UNITY调用安桌方法出现 JNI: Init'd AndroidJavaClass with null ptr! 原因是····· 得运行在一个真正的Android设备上! 得运行在一个真正的And ...
- 【Unity 3D游戏开发】在Unity使用NoSQL数据库方法介绍
随着游戏体积和功能的不断叠加,游戏中的数据也变得越来越庞杂,这其中既包括玩家产生的游戏存档等数据,例如关卡数.金币等,也包括游戏配置数据,例如每一关的配置情况.尽管Unity提供了PlayerPref ...
- Unity中的截图方法(包括全屏截图、区域截图、Camera截图和摄像头截图)
Unity中的截图方法(包括全屏截图.区域截图.Camera截图和摄像头截图) Application.CaptureScreenshot ScreenCapture Texture2D.ReadPi ...
- Unity定时重复调用方法--Invoke方法
Unity定时/重复调用方法_Invoke方法 本篇讲述如何在unity中定定时调用其他方法的Invoke方法, 通过这个方法可以实现更多定时功能. (一)先来介绍本篇用到的两个方法: (1)Invo ...
- unity调整重力的方法
介绍 unity调整重力的方法 全局 如果想要全局调整Unity项目中的重力,可以通过修改项目的Physics Settings(物理设置)来实现.具体步骤如下: 打开Unity编辑器,选择" ...
- Unity场景烘焙黑面方法三
Unity场景烘焙黑面方法三 Unity场景烘焙黑面方法三 - 哔哩哔哩 (bilibili.com) 关注 Unity场景烘焙黑面方法三 使用Bakery插件将Unity场景烘焙干干净净的,漂漂亮亮 ...
- Unity 贴图压缩方法和对比
Unity 贴图压缩方法和对比 在手机平台,贴图必定需要压缩,如果不压缩,没多少手机可以坑得住内存,除非你对贴图的精度需求很高,需要牺牲对低端设备的适配,贴图压缩是一个常用和必要的内存优化手段 以下是 ...
- Unity之Math等方法的使用
Math方法 其实内容是比较简单的,只是笔者想想养成记笔记的习惯,所以我们直接看代码. using System.Collections; using System.Collections.Gener ...
- Unity同一项目双开方法
Unity中一个项目只能有一个实例,也就是说如果你想测试多人联机的话,可能就需要打包或两台电脑,都有各自的缺点,这个时候双开项目就是最好的方法了,特别是测试帧同步的时候非常有必要 非常简单!整个过程只 ...
最新文章
- ACMNO.40 C语言-子串 有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串
- iOS10 UI教程视图的边界与视图的框架
- 路由(二)——动态路由简介与RIP协议
- C#设计模式之十二代理模式(Proxy Pattern)【结构型】
- 华为交换机CPU SNMP OID [简单整理]
- 编译安装LAMP对其性能压力测试
- 《Java练习题》Java编程题合集(转载)
- linux 组态软件,基于嵌入式Linux的组态软件实时数据库的设计
- 三菱PLC缓冲表操作
- 瑞典皇家理工学院计算机科学世界排名,瑞典皇家理工学院世界排名
- 整理一个将qq音乐的歌单导入到苹果音乐中的方法
- 领英营销—领英外贸开发客户的方法细节
- 微软反linux广告图片,一张地铁站“前程无忧广告”的图片引发网友热议 官方:虚假图片...
- mysql 用户名 长度_一个 MySQL 用户名长度的坑
- 数据库的用户名及密码
- 批处理系统,分时系统,分布式系统,多处理/多核处理器系统,集群系统,嵌入式操作系统
- 山东畜牧兽医职业学院计算机考试,山东畜牧兽医职业学院计算机自编word15套试题11Word模拟试题(1-15).doc...
- python执行定时任务
- Zhong__安装配置ElasticSearch
- java的类是什么_java类是什么意思