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


​​}​​

​​}​​

黄世宇/Shiyu Huang's Personal Page:​​https://huangshiyu13.github.io/​