yield は単体でも使用可能です。単体で使用した場合には1フレーム遅れてから実行されます。
そのため、以下の test() の様に無限ループの中で使用した場合には1フレーム毎に呼ばれる事になります。
※「Start」ボタンを押すとCoroutineの開始。「Stop」を押すとCoroutineが停止します。
function OnGUI () {
if (GUI.Button(Rect(5, 5, 100, 100), "Start")) {
StartCoroutine("test");
}
if (GUI.Button(Rect(5, 110, 100, 100), "Stop")) {
StopCoroutine("test");
}
}
function Update () {
print("Update " + Time.time);
}
function test() {
while(1) {
yield;
print("-----test " + Time.time);
}
}Coroutineはこの様な動作をする為、マルチスレッドプログラムと似た処理を作る事が可能です。
Unity Script Reference – Overview: Coroutines & Yield
http://unity3d.com/support/documentation/ScriptReference/index.Coroutines_26_Yield.html