回答編集履歴
2
補足
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
FindObjectOfType<T>() の戻り値は 必ずGameObject型というわけではなく、T型です。
|
2
|
-
いわゆるジェネリクスというやつですね。
|
2
|
+
いわゆるジェネリクスというやつですね。
|
3
3
|
|
4
4
|
```cs
|
5
5
|
FindObjectOfType<Manager>();
|
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
ここで``Manager``というコンポーネントがついたものを探して最初に見つかったものの参照を取ります。見つからなければnullが返ります。今回、Tの部分で``Manager``型を指定しているので検索するのものこれですし、戻り値として返ってくるのも``Manager``型です
|
9
9
|
|
10
|
-
わかりやすく言えば、シーン上でアクティブになっているオブジェクトを全部検索して``Manager``が
|
10
|
+
わかりやすく言えば、シーン上でアクティブになっているオブジェクトを全部検索して``Manager``がアタッチされているものがあるかどうかを調べていきます。それで最初に見つけたManagerをしょっ引いて連れてきてくれるのがこのコードがやっていることです。
|
11
11
|
|
12
12
|
試しに下記のコードでhogeは何型になっているかを調べるとManager型になっているかと思います。
|
13
13
|
|
@@ -19,6 +19,7 @@
|
|
19
19
|
|
20
20
|
|
21
21
|
…ただ、FindObjectOfTypeは全オブジェクトのコンポーネントをなめるように検索するので時間がかかります。あまりおすすめしません。参照は予めどこかで持っておくなどすると良いかと思います。
|
22
|
+
あと、今回はおそらく``Manager``がアタッチされたものが1つしかないので問題ないのだと思いますが、これが仮に``Manager``が複数のオブジェクトにアタッチされている場合などではどちらの参照をとっているのかがわかりませんので問題が起きる可能性があります。
|
22
23
|
|
23
24
|
参考:
|
24
25
|
【Unity】GameObject.Find 系関数の処理速度の検証結果
|
1
補足
answer
CHANGED
@@ -7,6 +7,8 @@
|
|
7
7
|
|
8
8
|
ここで``Manager``というコンポーネントがついたものを探して最初に見つかったものの参照を取ります。見つからなければnullが返ります。今回、Tの部分で``Manager``型を指定しているので検索するのものこれですし、戻り値として返ってくるのも``Manager``型です
|
9
9
|
|
10
|
+
わかりやすく言えば、シーン上でアクティブになっているオブジェクトを全部検索して``Manager``がAttachされているものがあるかどうかを調べていきます。それで最初に見つけたManagerをしょっ引いて連れてきてくれるのがこのコードがやっていることです。
|
11
|
+
|
10
12
|
試しに下記のコードでhogeは何型になっているかを調べるとManager型になっているかと思います。
|
11
13
|
|
12
14
|
```cs
|