在游戏设计过程中定时器是必不可少的工具,我们知道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;   } }

转载于:https://blog.51cto.com/dingxiaowei/1366161

[Unity3d]u3d中定时器的使用相关推荐

  1. Qt中定时器使用的两种方法

    Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 其精确度一般依赖于操作系统和硬件,但一般支持20ms.下面将分别介绍两种方法来使用定时器. 方法 ...

  2. U3D中可以直接使用GL!!!

    U3D中可以直接使用GL!!! https://blog.csdn.net/u013172864/article/details/78860624 posted on 2018-12-04 20:30 ...

  3. U3D中物体的渲染顺序

    U3D中物体的渲染顺序 1,由SHADER中渲染队列及队列中的值决定 2,在同一队列中,若材质相同 2.1 对于UI,按其在场景层级中的先后顺序绘制 2.2 对于3D不透明物体,按其离相机的距离,由近 ...

  4. C#与U3D中字符串尾0

    C#与U3D中字符串尾0 static void TestChar0(){//注意字符串中0和\0的区别,如 s1="h0ello", s2 = "h\0ello&quo ...

  5. unity3D 5中如何修改及显示Text的值

    分步阅读 unity3D 5中如何修改及显示Text的值 百度经验:jingyan.baidu.com 因为unit5.0的版本的原因,现在的text控件与之前版本的有了一些差异,接下来我们就来介绍如 ...

  6. 19、mysql中定时器的创建和使用

    mysql中可以使用定时器,用来进行计划的调度,在mysql中定时器通过事件的形式存在,接下来介绍一下定时器的使用 创建定时器 CREATE EVENT IF NOT EXISTS 计划名-- 计划频 ...

  7. Windows编程—Windows驱动中定时器的使用

    文章目录 Windows编程-Windows驱动中定时器的使用 前言 代码 简单版 升级版 程序效果 Windows编程-Windows驱动中定时器的使用 前言 定时器操作是应用编程中非常常见的操作, ...

  8. python threading模块中的timer_threading中定时器Timer方法

    threading中定时器Timer 定时器功能:在设置的多少时间后执行任务,不影响当前任务的执行 常用方法 from threading import Timer t = Timer(interva ...

  9. JS中定时器的返回数值ID值

    定时器会返回一个数字值id,可以由clearInterval(id)或clearTimeout(id)来实现对对应定时器的清除. setInterval()/setTimeout()BOM中的Wind ...

最新文章

  1. 2010威购VgoShop单用户商场下一代企业电子商务系统
  2. NTU课程:MAS714 (3)Graph Algorithms
  3. [密码学] RSA同模攻击与选择密文攻击
  4. 输出联系变化的数字seq
  5. P1459 三值的排序 Sorting a Three-Valued
  6. 软件工程 工具之二—— PowerDesigner v12(六)
  7. 计算机软件性能测试的过程,性能测试过程的规范
  8. Mendix:低代码开发平台 让未来工作模式日渐明朗
  9. yum -y list java* 缓存加载不了_Java开发面试宝典:分布式相关篇
  10. ProxySQL 常见表配置
  11. python jieba库的使用
  12. micropython入门 stm32_STM32F4系列使用MicroPython开发
  13. 网络安全理论与技术概述-带你了解网络安全
  14. iOS SpriteKit 小游戏开发实例 - Flappy Bird
  15. LeetCode881. 救生艇
  16. projects from git 和 projects from git(with smart import)区别
  17. golang游戏开发学习笔记-开发一个简单的2D游戏(基础篇)
  18. ## STM32F103的光照、烟雾MQ2、有毒气体MQ135的ADC配置(寄存器版与库函数版
  19. 2021-07-01验证用户账号密码登录,三次输入错误要验证码
  20. 【已解决】Ipad 1代-随意下载应用软件(此方法,同样适用于IOS 5.1.1的Iphone手机)

热门文章

  1. Spray + Akka高性能异步IO并发
  2. oracle 数据库 触发器 trigger 语法
  3. SCA (Service Component Architecture)
  4. kafka系列九、kafka事务原理、事务API和使用场景
  5. 03.openssl-获得支持加密算法
  6. Building Paragon in Unreal Engine 4 - GDC 2016
  7. 自己使用window.open和window.showModalDialog在父子窗口传值的实践简单总结
  8. ckeditor的使用实例
  9. linux中/etc/passwd文件与/etc/shadow文件解析
  10. Windows via C/C++ 学习(15)线程调度、线程优先级和亲缘性