回答編集履歴

3

コード修正

2020/04/29 09:38

投稿

fiveHundred
fiveHundred

スコア10152

test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- public bool SetFoo(bool val)
31
+ public void SetFoo(bool val)
32
32
 
33
33
  {
34
34
 

2

ループについて追記

2020/04/29 09:38

投稿

fiveHundred
fiveHundred

スコア10152

test CHANGED
@@ -43,3 +43,13 @@
43
43
 
44
44
 
45
45
  他にもUpdate()やコルーチン内で毎フレーム変更があるかチェックする方法もあります。
46
+
47
+
48
+
49
+ > ループは回数制限もありますしちょっと違う気がします(無限ループはバグるはずですし)
50
+
51
+
52
+
53
+ ループに回数制限はありません。
54
+
55
+ 無限ループでフリーズするのは、「関数が終わらないため他の処理ができない」からです。

1

「数値が変更された時に処理を実行する方法」を追記

2020/04/29 09:19

投稿

fiveHundred
fiveHundred

スコア10152

test CHANGED
@@ -4,4 +4,42 @@
4
4
 
5
5
  必要なのは「シーン間の数値の共有方法」「ボタンを押した時に処理を実行する方法」「数値が変更された時に処理を実行する方法」であり、これらはマルチスレッドとは関係ないです(「非同期処理」であれば関係あるかもしれないけど)。
6
6
 
7
+
8
+
9
+ 前者2つは調べれば出てくるはずなので、「数値が変更された時に処理を実行する方法」ですが、これは変数を変更するための関数、もしくはプロパティを用意し、それが呼び出された時に処理を実行すれば良いです。
10
+
11
+ 具体的には以下のような感じです。
12
+
13
+
14
+
15
+ ```C#
16
+
17
+ bool foo;
18
+
19
+
20
+
21
+ void execChangeFoo()
22
+
23
+ {
24
+
25
+ // ここに変更時に処理したい処理を書く
26
+
27
+ }
28
+
29
+
30
+
31
+ public bool SetFoo(bool val)
32
+
33
+ {
34
+
35
+ foo = val;
36
+
37
+ execChangeFoo();
38
+
39
+ }
40
+
41
+ ```
42
+
43
+
44
+
7
- 全ての容を書くのは面倒くさいの、まずは自分で調べてみて、分からない点があればそれを記載するようにしてください
45
+ 他にもUpdate()やコルーチン内で毎フレーム変更があるかチェックする方法もあります