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