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

回答編集履歴

2

コメントを受けて追記

2018/02/13 02:41

投稿

fiveHundred
fiveHundred

スコア10466

answer CHANGED
@@ -2,4 +2,17 @@
2
2
  Gageをアタッチしているオブジェクトを取得したいのであれば、~~GetComponent<Gage>()~~``FindObjectOfType<Gaze>()``を使えばよいので、staticにする必要はありません。
3
3
 
4
4
  また、static変数としてGageMovedが定義されておりますが、こうするとシーンチェンジした後もfalseにリセットされないため、不具合の原因になります。
5
- よって、これもstaticにしない方がよいでしょう。
5
+ よって、これもstaticにしない方がよいでしょう。
6
+
7
+ ---
8
+
9
+ コメントを受けて追記:
10
+ FindObjectsOfType<Gage>()の返り値は配列なので、以下のようにループ内で各Gageの関数を呼び出す必要があります。
11
+
12
+ ```C#
13
+ Gage[] gageArray = FindObjectsOfType<Gage>();
14
+ foreach (Gage gage in gageArray)
15
+ {
16
+ gage.MOVEGage(~);
17
+ }
18
+ ```

1

関数が間違っていたので修正

2018/02/13 02:41

投稿

fiveHundred
fiveHundred

スコア10466

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  「staticにしないと外部から呼び出せない」と思っているのであれば、それは間違いです。
2
- Gageをアタッチしているオブジェクトを取得したいのであれば、``GetComponent<Gage>()``を使えばよいので、staticにする必要はありません。
2
+ Gageをアタッチしているオブジェクトを取得したいのであれば、~~GetComponent<Gage>()~~``FindObjectOfType<Gaze>()``を使えばよいので、staticにする必要はありません。
3
3
 
4
4
  また、static変数としてGageMovedが定義されておりますが、こうするとシーンチェンジした後もfalseにリセットされないため、不具合の原因になります。
5
5
  よって、これもstaticにしない方がよいでしょう。