回答編集履歴

2

補足

2019/12/16 00:42

投稿

hogefugapiyo
hogefugapiyo

スコア3302

test CHANGED
@@ -1,6 +1,6 @@
1
1
  FindObjectOfType<T>() の戻り値は 必ずGameObject型というわけではなく、T型です。
2
2
 
3
- いわゆるジェネリクスというやつですね。T型なので``FindObjectOfType<GameObject>();``という書き方なんかもできます。
3
+ いわゆるジェネリクスというやつですね。
4
4
 
5
5
 
6
6
 
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- わかりやすく言えば、シーン上でアクティブになっているオブジェクトを全部検索して``Manager``がAttachされているものがあるかどうかを調べていきます。それで最初に見つけた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

補足

2019/12/16 00:42

投稿

hogefugapiyo
hogefugapiyo

スコア3302

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