Coroutine StartCoroutine (routine : IEnumerator) :该方法返回 Coroutine 类型的值。
例子:执行协同,只在场景开始时运行一次。
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
IEnumerator Start() {
print("Starting " + Time.time);
yield return StartCoroutine(WaitAndPrint(2.0F));
print("Done " + Time.time);
}
IEnumerator WaitAndPrint(float waitTime) {
yield return new WaitForSeconds(waitTime);
print("WaitAndPrint " + Time.time);
}
}
需求:在条件中,执行。满足条件即可:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class DelayToInvoke : MonoBehaviour {
public static IEnumerator DelayToInvokeDo(Action action01,Action action02, float delaySeconds)
{
action01();
yield return new WaitForSeconds(delaySeconds);
action02();
}
}
StartCoroutine(DelayToInvoke.DelayToInvokeDo(() =>
{
NGUITools.SetActive(dongwulight,true);
},() =>{
NGUITools.SetActive(dongwulight,false);
}, 3.0f));//3秒之后执行第二个函数 NGUITools.SetActive(dongwulight,false)
注意方法:
StartCoroutine();
DelayToInvoke.DelayToInvokeDo()方法中参数格式:()=>{},()=>{},delaySeconds
A aGetLambda = () => a;//等价于()=>{return a;}