一种比使用协程更方便的方法: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的调用.
posted @ 2015-04-23 11:08  Behaviour  阅读(800)  评论(0编辑  收藏  举报