次のように更新()メソッドを使用してたび:デバッグログメッセージこれはアップデートを使用して、終了した後にのみ、コードの大きな塊、()の実行前
void Update() {
if (Input.GetMouseButtonDown(0) && useRandomSeed) {
Debug.Log("Generating New Map...");
GenerateMap();
Debug.Log("New Map Generated!");
}
}
コンソールの出力をプッシュします最初のメッセージと第2のメッセージを(視覚的に)同時に出力する。最初にGenerateMap()
が実行されます。 GenerateMap()
は、返されるまでに時間がかかる方法です。
:
- まずデバッグメッセージが印刷されます。
- コードが実行されます。
- 2番目のデバッグメッセージが表示されます。
- コードが実行されます。何が起こった
。
- 第1および第2のデバッグメッセージが(順番に)印刷されます。
私はこれやってみました:
void Update() {
if (Input.GetMouseButtonDown(0) && useRandomSeed && !mapGenPending) {
Debug.Log("Generating New Map...");
mapGenPending = true;
} else if (mapGenPending) {
GenerateMap();
Debug.Log("New Map Generated!");
mapGenPending = false;
}
}
をしかし、これはまだ第二ケースが生じました。私は、UnityがサイクルごとにUpdate()
内の特定のコードの順序を気にしないかもしれないと考えましたが、2サイクルでもメッセージをコンソールに順番に印刷するには不十分です。
最終的には、これが起こるのを防ぐために、どうやって注文を期待どおりにするのですか?例えば、手続きのためのコルーチンで
これは奇妙なようです。私はこれに直面していない。あなたはまたあなたが質問に出す出力を追加することができますか? –