回答編集履歴
2
質問者からの追記を元により適した回答に
answer
CHANGED
@@ -1,16 +1,7 @@
|
|
1
|
-
止めたい処理は上のスクリプトで言うStart内のみですか?
|
2
|
-
そうであれば、Startをコルーチンにすれば可能です。
|
3
|
-
|
1
|
+
[Debug.Break](https://docs.unity3d.com/ja/current/ScriptReference/Debug.Break.html)を呼べば呼んだ次のフレームに移行する前にポーズしてくれるので、Inspectorなどは操作できる状態で処理を止めることができます。
|
4
|
-
でマウスクリックがあるまでそのコルーチンの処理を止めることができます。
|
5
2
|
|
3
|
+
ですが、このメソッドはあくまでも呼んだ瞬間ではなく、呼んだあとのフレーム移行時に機能するので
|
4
|
+
同じフレームのループ中などに呼んでもループの途中結果を確認することはできません。
|
6
5
|
|
7
|
-
> await/async以外であるでしょうか?
|
8
|
-
|
6
|
+
非同期でないUnityのメインスレッド上の処理を止めれば同じメインスレッドで実行されているInspectorの更新処理も止まるため、非同期でない処理を即座に中断してInspectorで確認することはできません。
|
9
|
-
|
10
|
-
asyncを付与しないといけないと何が問題になるのでしょうか?
|
11
|
-
|
12
|
-
> どんなメソッド内でも制限なしに、他のメソッドを呼び出せば、
|
13
|
-
そこで処理が止まって入力を待機するようにしたいです。
|
14
|
-
|
7
|
+
このような場合は、IDEのウォッチ式などを活用するのが良いと思います。
|
15
|
-
|
16
|
-
とありますがコルーチンでもいいというのとどんなメソッド内でも、というのは矛盾していませんか?
|
1
質問の不明瞭な点に言及
answer
CHANGED
@@ -1,2 +1,16 @@
|
|
1
|
+
止めたい処理は上のスクリプトで言うStart内のみですか?
|
2
|
+
そうであれば、Startをコルーチンにすれば可能です。
|
1
3
|
コルーチン内であれば、`yield return new WaitUntil(()=> Input.GetMouseButtonDown(0)); `
|
2
|
-
でマウスクリックがあるまでそのコルーチンの処理を止めることができます。
|
4
|
+
でマウスクリックがあるまでそのコルーチンの処理を止めることができます。
|
5
|
+
|
6
|
+
|
7
|
+
> await/async以外であるでしょうか?
|
8
|
+
await/asyncは、Startメソッドにasyncを付与しないといけない制限があるので考えていません。
|
9
|
+
|
10
|
+
asyncを付与しないといけないと何が問題になるのでしょうか?
|
11
|
+
|
12
|
+
> どんなメソッド内でも制限なしに、他のメソッドを呼び出せば、
|
13
|
+
そこで処理が止まって入力を待機するようにしたいです。
|
14
|
+
await/async以外なら、コルーチンとかでもいいです。
|
15
|
+
|
16
|
+
とありますがコルーチンでもいいというのとどんなメソッド内でも、というのは矛盾していませんか?
|