博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity之定时调用
阅读量:7238 次
发布时间:2019-06-29

本文共 1958 字,大约阅读时间需要 6 分钟。

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
;
    
}
}

转载地址:http://blrfm.baihongyu.com/

你可能感兴趣的文章
利用Nginx搭建http和rtmp协议的流媒体服务器[转]
查看>>
面试笔试
查看>>
用CleanMyMac误删了语言包怎么办
查看>>
Java读写Word文件常用技术
查看>>
Android - View绘图原理总结
查看>>
按键精灵手机版监控像素变换点击脚本
查看>>
maven jar包上传到服务器
查看>>
SecureCrt退出全屏
查看>>
扩展功能==继承?
查看>>
HDU 4355 Party All the Time(三分|二分)
查看>>
算法笔记_223:打印回型嵌套(Java)
查看>>
Linux环境thinkphp配置以及数据源驱动改动
查看>>
C语言之基本算法11—牛顿迭代法求平方根
查看>>
Concurrency and Application Design
查看>>
vuethink 在本地没问题,在服务器报错 , php5.6与php5.5之间的大坑
查看>>
11.使用 package.json
查看>>
idea如何设置类头注释和方法注释
查看>>
白盒测试目录导航
查看>>
linux过滤旧文件中的空行和注释行剩余内容组成新文件
查看>>
[LeetCode] Preimage Size of Factorial Zeroes Function 阶乘零的原像个数函数
查看>>