CoroutineNamespace: UnityEngine
Parent class: YieldInstruction
Description

MonoBehaviour.StartCoroutine returns a Coroutine. Instances of this class are only used to reference these coroutines and do not hold any exposed properties or functions.

A coroutine is a function that can suspend its execution (yield) until the given given YieldInstruction finishes.
// - prints "Starting 0.0"
// - prints "WaitAndPrint 5.0"
// - prints "Done 5.0"

print ("Starting " + Time.time); // Start function WaitAndPrint as a coroutine yield WaitAndPrint(); print ("Done " + Time.time);

function WaitAndPrint () { // suspend execution for 5 seconds yield WaitForSeconds (5); print ("WaitAndPrint "+ Time.time); }
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    IEnumerator WaitAndPrint() {
        yield return new WaitForSeconds(5);
        print("WaitAndPrint " + Time.time);
    }
    IEnumerator Example() {
        print("Starting " + Time.time);
        yield return WaitAndPrint();
        print("Done " + Time.time);
    }
}
import UnityEngine
import System.Collections

public class Example(MonoBehaviour):

	def WaitAndPrint() as IEnumerator:
		yield WaitForSeconds(5)
		print(('WaitAndPrint ' + Time.time))

	def Example() as IEnumerator:
		print(('Starting ' + Time.time))
		yield WaitAndPrint()
		print(('Done ' + Time.time))

Inherited members