CoRoutine code example

Example 1: subroutine

It's basically a piece of code that can be called and activated
at anytime within a large program. Unlike a function, it does
not have to return any data.

Example 2: unity coroutine

void Start() {
  StartCoroutine("func"); // Start coroutine named "func"
}

IEnumerator func() {
  Debug.Log("Hello");
  yield return new WaitForSecondsRealtime(1); //Wait 1 second
  Debug.Log("World");
}

Example 3: c# coroutines

using UnityEngine;
using System.Collections;public class ExampleClass : MonoBehaviour
{
    IEnumerator WaitAndPrint()
    {
        // suspend execution for 5 seconds
        yield return new WaitForSeconds(5);
        print("WaitAndPrint " + Time.time);
    }    IEnumerator Start()
    {
        print("Starting " + Time.time);        // Start function WaitAndPrint as a coroutine
        yield return StartCoroutine("WaitAndPrint");
        print("Done " + Time.time);
    }
}

Example 4: c# unity coroutine

IEnumerator Fade() 
{
    for (float ft = 1f; ft >= 0; ft -= 0.1f) 
    {
        Color c = renderer.material.color;
        c.a = ft;
        renderer.material.color = c;
        yield return new WaitForSeconds(.1f);
    }
}

Example 5: how to write coroutine in unity

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");
    }
}

Example 6: goroutine

// just a function (which can be later started as a goroutine)
func doStuff(s string) {
}

func main() {
    // using a named function in a goroutine
    go doStuff("foobar")

    // using an anonymous inner function in a goroutine
    go func (x int) {
        // function body goes here
    }(42)
}