回答編集履歴
1
書式の改善
test
CHANGED
@@ -1,12 +1,22 @@
|
|
1
|
-
この登録されたイベントが実行される時にchild.name
|
1
|
+
この登録されたイベントが実行される時にchild.nameはどうなっているのか?
|
2
2
|
|
3
3
|
という事を考えて下さい。
|
4
4
|
|
5
5
|
この場合、ログにButtonの名前を表示させたいならbutton.nameとするべきです。
|
6
6
|
|
7
|
+
childの方が必要、というのであれば、
|
8
|
+
|
9
|
+
一度、器に代入してその参照を渡してやれば良いです。
|
7
10
|
|
8
11
|
|
12
|
+
|
13
|
+
Transform target = child.transform;
|
14
|
+
|
15
|
+
~target.name;
|
16
|
+
|
17
|
+
|
18
|
+
|
9
|
-
ラムダ式の部分で
|
19
|
+
ラムダ式の部分でループしている変数の参照(1つしかない)を渡しているので、イベントが実行されるタイミングでは、その内容は変わってしまっているという事です。スコープ外を参照(delegate、ラムダ式の特徴の一つ)で、このような現象が起こります。
|
10
20
|
|
11
21
|
|
12
22
|
|
@@ -18,7 +28,7 @@
|
|
18
28
|
|
19
29
|
コンパイラの解釈の問題らしく、
|
20
30
|
|
21
|
-
c#5.0以降なら思った側の動作をするようですね。
|
31
|
+
c#5.0以降なら思った側の動作をするようですね。(コピーされ新しく参照されるようです)
|
22
32
|
|
23
33
|
|
24
34
|
|