私は現在IEnumerator & CoroutineをUnityのコンテキスト内で理解しようとしていますが、 "yield returns null"が実行する内容についてはあまり自信がありません。現時点では、基本的には一時停止して次のフレームを待っていて、次のフレームでは再びwhileステートメントを実行するように戻ってきます。Unity - IEnumeratorのyieldがnullを返す
「yield return null」を省略した場合、オブジェクトはその宛先に即座に移動したり、「多くのフレームをスキップする」ようです。だから私は私の質問は、この "ループの中でこの戻り値ヌル"関数とどのように必要なのですか?
void Start() {
StartCoroutine(Move());
}
IEnumerator Move(){
while (a > 0.5f){
... (moves object up/down)
yield return null; // <---------
}
yield return new WaitForSeconds(0.5f);
.... (moves object up/down)
StartCoroutine(Move());
}
私はCoroutines自身に精通していませんが、フレームごとに1回(または何か)実行され、「yield return」は基本的に「次の更新を続行するまで待つ」というショートカットです。もしあなたがそれを持っていなければ、whileループは単一の更新で完全に完了するまで実行されます。なぜなら、オブジェクトはそれがなくても即座に動くからです。 – Abion47