xxxxxxxxxx
private SpriteRenderer sr;
public Color color1;
public Color color2;
void Start () {
sr = GetComponent<SpriteRenderer>();
StartCoroutine(ChangeColor());
}
IEnumerator ChangeColor() {
while (true) {
if (sr.color == color1)
sr.color = color2;
else
sr.color = color1;
yield return new WaitForSeconds(3);
}
}
xxxxxxxxxx
void Start() {
StartCoroutine("func"); // Start coroutine named "func"
}
IEnumerator func() {
Debug.Log("Hello");
yield return new WaitForSecondsRealtime(1); //Wait 1 second
Debug.Log("World");
}
xxxxxxxxxx
using UnityEngine;
using System.Collections;// In this example we show how to invoke a coroutine and execute
// the function in parallel. Start does not need IEnumerator.public class ExampleClass : MonoBehaviour
{
private IEnumerator coroutine; void Start()
{
// - After 0 seconds, prints "Starting 0.0 seconds"
// - After 0 seconds, prints "Coroutine started"
// - After 2 seconds, prints "Coroutine ended: 2.0 seconds"
print("Starting " + Time.time + " seconds"); // Start function WaitAndPrint as a coroutine. coroutine = WaitAndPrint(2.0f);
StartCoroutine(coroutine); print("Coroutine started");
} private IEnumerator WaitAndPrint(float waitTime)
{
yield return new WaitForSeconds(waitTime);
print("Coroutine ended: " + Time.time + " seconds");
}
}
xxxxxxxxxx
using UnityEngine;
using System.Collections;
public class ExampleScript : MonoBehaviour
{
private IEnumerator Start()
{
Debug.Log("Coroutine started.");
yield return new WaitForSeconds(2f);
Debug.Log("Coroutine finished.");
}
}