一种比使用协程更方便的方法:Invoke(),同样达到等待执行的效果
1.Invoke(string methodName,float time)
- 在一定时间调用methodName函数
using UnityEngine; using System.Collections; public class example : MonoBehaviour { public Rigidbody projectile; public void Awake() { Invoke("LaunchProjectile", 2); } void LaunchProjectile() { Rigidbody instance =Instantiate(projectile); instance.velocity = Random.insideUnitSphere* 5; } }
2.InvokeRepeating(string methodName,float time,float repeatRate)
- 每隔一定时间调用一次methodName函数
在time秒调用methodName方法;简单说,根据时间调用指定方法名的方法
从第一次调用开始,每隔repeatRate时间调用一次.
1 using UnityEngine; 2 using System.Collections; 3 4 public class example : MonoBehaviour { 5 public Rigidbody projectile; 6 void LaunchProjectile() { 7 Rigidbody instance =Instantiate(projectile); 8 instance.velocity = Random.insideUnitSphere* 5; 9 } 10 public void Awake() { 11 InvokeRepeating("LaunchProjectile", 2, 0.3F); //2秒后,每0.3f调用一次 12 } 13 }
3.CanceInvoke("methodName")
- 取消所有名为methodName的调用.