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

回答編集履歴

2

質問者からの追記を元により適した回答に

2021/01/01 17:13

投稿

Ram.Type-0
Ram.Type-0

スコア424

answer CHANGED
@@ -1,16 +1,7 @@
1
- 止めたい処理は上のスクリプトで言うStart内のみですか?
2
- そうであれば、Startをコルーチンにすれば可能です。
3
- コルーチン内であれば、`yield return new WaitUntil(()=> Input.GetMouseButtonDown(0)); `
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
- await/asyncは、Startッドにasync付与しなといけない制限があるので考えていません。
6
+ 非同期でないUnityのインスレッド上の処理止めれば同じメインスレッドで実行されているInspector更新処理も止まるため、非同期処理を即座に中断してInspectorで確認することはできません。
9
-
10
- asyncを付与しないといけないと何が問題になるのでしょうか?
11
-
12
- > どんなメソッド内でも制限なしに、他のメソッドを呼び出せば、
13
- そこで処理が止まって入力を待機するようにしたいです。
14
- await/async以外コルーかでもいです。
7
+ このよう場合はIDEのウォッ式などを活用するのが良いす。
15
-
16
- とありますがコルーチンでもいいというのとどんなメソッド内でも、というのは矛盾していませんか?

1

質問の不明瞭な点に言及

2021/01/01 17:13

投稿

Ram.Type-0
Ram.Type-0

スコア424

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
+ とありますがコルーチンでもいいというのとどんなメソッド内でも、というのは矛盾していませんか?