回答編集履歴
2
補足
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
FindObjectOfType<T>() の戻り値は 必ずGameObject型というわけではなく、T型です。
|
2
2
|
|
3
|
-
いわゆるジェネリクスというやつですね。
|
3
|
+
いわゆるジェネリクスというやつですね。
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
わかりやすく言えば、シーン上でアクティブになっているオブジェクトを全部検索して``Manager``が
|
19
|
+
わかりやすく言えば、シーン上でアクティブになっているオブジェクトを全部検索して``Manager``がアタッチされているものがあるかどうかを調べていきます。それで最初に見つけたManagerをしょっ引いて連れてきてくれるのがこのコードがやっていることです。
|
20
20
|
|
21
21
|
|
22
22
|
|
@@ -40,6 +40,8 @@
|
|
40
40
|
|
41
41
|
…ただ、FindObjectOfTypeは全オブジェクトのコンポーネントをなめるように検索するので時間がかかります。あまりおすすめしません。参照は予めどこかで持っておくなどすると良いかと思います。
|
42
42
|
|
43
|
+
あと、今回はおそらく``Manager``がアタッチされたものが1つしかないので問題ないのだと思いますが、これが仮に``Manager``が複数のオブジェクトにアタッチされている場合などではどちらの参照をとっているのかがわかりませんので問題が起きる可能性があります。
|
44
|
+
|
43
45
|
|
44
46
|
|
45
47
|
参考:
|
1
補足
test
CHANGED
@@ -13,6 +13,10 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
ここで``Manager``というコンポーネントがついたものを探して最初に見つかったものの参照を取ります。見つからなければnullが返ります。今回、Tの部分で``Manager``型を指定しているので検索するのものこれですし、戻り値として返ってくるのも``Manager``型です
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
わかりやすく言えば、シーン上でアクティブになっているオブジェクトを全部検索して``Manager``がAttachされているものがあるかどうかを調べていきます。それで最初に見つけたManagerをしょっ引いて連れてきてくれるのがこのコードがやっていることです。
|
16
20
|
|
17
21
|
|
18
22
|
|