teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

誤記を訂正

2020/01/30 21:18

投稿

Bongo
Bongo

スコア10816

answer CHANGED
@@ -1,3 +1,3 @@
1
- エラーメッセージにあるように、`WaitUntil`の引数に与えるべきなのは単なる`bool`ではなく「`bool`を返す手続き」である必要があるかと思います。`WaitUntil`オブジェクトを作成したその瞬間に一度だけ条件判定を行ったところで、普通は再開判定の役には立たないはずです。そこで`WaitUntil`の引数としては条件判定用のメソッドを受け取ることにして、それが内部的に毎フレーム実行され、結果が`true`になったところでコルーチンが再開する仕掛けになっているわけですね。
1
+ エラーメッセージにあるように、`WaitUntil`の引数に与えるべきなのは単なる`bool`ではなく「`bool`を返す手続き」である必要があるかと思います。`WaitUntil`オブジェクトを作成したその瞬間に一度だけ条件判定を行ったところで、普通は再開判定の役には立たないはずです。そこで`WaitUntil`の引数としては条件判定用のメソッドを受け取ることにして、それが内部的に毎フレーム実行され、結果が`true`になったところでコルーチンが再開する仕掛けになっているわけですね。
2
2
 
3
3
  [リファレンス](https://docs.unity3d.com/ja/current/ScriptReference/WaitUntil.html)の例をご覧いただきますと、再開条件判定をラムダ式の形で与えています。これにならって`yield return new WaitUntil(() => Hold.Flgs.saveDataLoaded);`としてみてはいかがでしょうか?