teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

補足

2021/05/17 03:29

投稿

hogefugapiyo
hogefugapiyo

スコア3303

answer CHANGED
@@ -1,14 +1,17 @@
1
1
  ``Camera.main``は``GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>();``とほぼ同義だそうです。
2
- タグでの検索なのでオブジェクト名での検索よりは少しマシですが、毎回検索&ゲットコンポーネントはちょっと嫌ですよね。なので、カメラへの参照自体を最初に取ればスマートになりそうです。
3
2
 
3
+ つまり、毎フレーム「MainCamera」っていうタグがついたオブジェクトを探してそいつからGetComponentしてこよう! っていうことをやっている形になります。
4
4
 
5
+ タグでの検索なのでオブジェクト名での検索よりは少しマシですが、それでも毎回検索&ゲットコンポーネントはちょっと嫌ですよね。なので、カメラへの参照自体を最初に取ればスマートになりそうです。
6
+
7
+
5
8
  ```cs
6
9
  private Vector3 _cv = new Vector3(0, 1f, -5f);
7
10
  private Vector3 _v, _vy = Vector3.zero;
8
11
  private GameObject _ex = null;
9
12
  private Rigidbody _rb = null;
10
13
  private bool _flag = true;
11
- private Camera myCamera;
14
+ private Camera myCamera; // カメラの参照
12
15
 
13
16
  void Start()
14
17
  {
@@ -42,4 +45,6 @@
42
45
  _flag = true;
43
46
  }
44
47
  }
45
- ```
48
+ ```
49
+
50
+ こうすれば少なくとも毎フレーム、タグで検索してゲットコンポーネントするという事態は避けられるように思います。