質問編集履歴
1
コードを一部修正しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
GetComponentによる負荷を検証したい
|
test
CHANGED
@@ -3,8 +3,6 @@
|
|
3
3
|
|
4
4
|
以下の様なコードで検証を行いました。
|
5
5
|
```C#
|
6
|
-
private void FixedUpdate()
|
7
|
-
{
|
8
6
|
var shot = _shotPool.GetPoolObj(0);
|
9
7
|
|
10
8
|
for (int g = 0; g < 10000; g++)
|
@@ -12,12 +10,11 @@
|
|
12
10
|
var a = shot.GetComponent<hogehoge>();
|
13
11
|
var b = shot.GetComponent<CircleCollider2D>();
|
14
12
|
}
|
15
|
-
}
|
16
13
|
```
|
17
14
|
※GetPoolObj関数で任意のオブジェクトを取得しています。
|
18
15
|
※shotオブジェクトにはhogehoge.csとCircleCollider2Dをアタッチ済みです。
|
19
16
|
|
20
|
-
上記のスクリプトを実行すれば1フレームにGetComponentが2万回実行されることになり、フレームレートが著しく低下するだろうと期待しました。
|
17
|
+
上記のスクリプトを実行すれば1フレームにGetComponentが2万回実行されることになり、一時的にフレームレートが著しく低下するだろうと期待しました。
|
21
18
|
しかしFPSは全く落ちません。更に6万回ほどに増やしても落ちません。
|
22
19
|
|
23
20
|
これは流石にGetComponentが軽いのではなく、私の検証方法が間違っているのだろうと思いました。
|