[Unity3d]u3d中定时器的使用

简介:

在游戏设计过程中定时器是必不可少的工具,我们知道update方法是MonoBehavior中一个人人皆知的定时器方法,每帧都在调用,那还有其他什么定时器的方法呢,这里介绍一下。

1.Invoke(string methodName,float time)

在一定时间调用methodName函数

using UnityEngine; using System.Collections;  public class example : MonoBehaviour { 	public Rigidbody projectile; 	void LaunchProjectile() { 		Rigidbody instance = Instantiate(projectile); 		instance.velocity = Random.insideUnitSphere * 5; 	} 	public void Awake() { 		Invoke("LaunchProjectile", 2); 	} }

2.InvokeRepeating(string methodName,float time,float repeatRate)

每隔一定时间调用一次methodName函数

Invokes the method methodName in time seconds.

在time秒调用methodName方法;简单说,根据时间调用指定方法名的方法

After the first invocation repeats calling that function every repeatRate seconds.

从第一次调用开始,每隔repeatRate时间调用一次.

using UnityEngine; using System.Collections;  public class example : MonoBehaviour { 	public Rigidbody projectile; 	void LaunchProjectile() { 		Rigidbody instance = Instantiate(projectile); 		instance.velocity = Random.insideUnitSphere * 5; 	} 	public void Awake() { 		InvokeRepeating("LaunchProjectile", 2, 0.3F);  //2秒后,没0.3f调用一次 	} }

3.CancelInvoke(string methodName)

取消这个脚本中所有的调用

Cancels all Invoke calls on this MonoBehaviour.

取消这个MonoBehaviour上的所有调用。

public class example : MonoBehaviour { 	public Rigidbody projectile; 	void Update() { 		if (Input.GetButton("Fire1")) 			CancelInvoke();  	} 	void LaunchProjectile() { 		instance = Instantiate(projectile); 		instance.velocity = Random.insideUnitSphere * 5; 	} 	public void Awake() { 		InvokeRepeating("LaunchProjectile", 2, 0.3F); 	} }  function LaunchProjectile () { 	instance = Instantiate(projectile); 	instance.velocity = Random.insideUnitSphere * 5; }

4.(bool) IsInvoking(string methodName)

某指定函数是否在等候调用

using UnityEngine; using System.Collections;  public class example : MonoBehaviour { 	public Rigidbody projectile; 	void Update() { 		if (Input.GetKeyDown(KeyCode.Space) && !IsInvoking("LaunchProjectile"))  //如果这个方法不在调用并且等待了2秒 			Invoke("LaunchProjectile", 2);  	} 	void LaunchProjectile() { 		Rigidbody instance = Instantiate(projectile); 		instance.velocity = Random.insideUnitSphere * 5; 	} }


















本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366161,如需转载请自行联系原作者
相关文章
|
Go 图形学 JavaScript
Unity中的定时器与延时器
JavaScript中的定时器与延时器,分别是 setInterval、setTimeout,对应的清理函数是:clearInterval、clearTimeout。 而在Unity中,则分别是:Invoke、InvokeRepeating和取消延迟调用  CancelInvoke   延迟调用 v...
1303 0
|
图形学
Unity 计时器 定时器
在网上找了一些资料,自己修改了,实现比较简单,要求精度不是很高的用这个没有问题 效果如下: 代码如下: using UnityEngine; using System.
985 0
|
5月前
|
开发框架 Java C#
【Unity逆向】玩游戏遇到的“飞天锁血”是怎么实现的?
【Unity逆向】玩游戏遇到的“飞天锁血”是怎么实现的?
93 0
|
5月前
|
存储 自然语言处理 监控
【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换
Unity的多语言本地化是一个很实用的功能,它可以帮助游戏支持多种语言,让不同语言的玩家都能够更好地体验游戏。 而实现本地化的方案也有很多种,各个方案之间也各有优劣,后面也会对多个方案进行介绍学习。 本文就来介绍一个专门作用于多语言本地化的Unity官方插件:Localization 。 这个插件方便进行游戏的多语言本地化,让游戏支持多种语言,下面就来看看该插件的使用方法吧!
|
4月前
|
定位技术 C# 图形学
Unity和C#游戏编程入门:创建迷宫小球游戏示例
Unity和C#游戏编程入门:创建迷宫小球游戏示例
76 2
|
9月前
|
开发框架 Java .NET
《unity游戏优化》第8章内存优化
《unity游戏优化》第8章内存优化
|
5月前
|
运维 API C#
【Unity游戏破解】外挂原理分析
【Unity游戏破解】外挂原理分析
171 0
【Unity游戏破解】外挂原理分析
|
5月前
|
vr&ar 图形学
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
62 0
|
5月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
188 0