回答編集履歴

1

補足

2019/03/12 09:29

投稿

hogefugapiyo
hogefugapiyo

スコア3302

test CHANGED
@@ -43,3 +43,43 @@
43
43
 
44
44
 
45
45
  ``OnClickButton``を呼んでやると、さっき探してきたコンポーネントから``SetActiveScript``を実行しています。
46
+
47
+
48
+
49
+ ## 非アクティブは見つからない
50
+
51
+ ついハマりがちですが、アクティブじゃないオブジェクトはこのやり方だと探すことができません。
52
+
53
+ 質問の例だと``GameObjectB(デフォルト非アクティブ)``は、非アクティブなのでFindしても見つかりません。ただし最初はアクティブにしておいてFindしてから、SetActiveで非アクティブにした場合は大丈夫です。
54
+
55
+
56
+
57
+ ```C#
58
+
59
+
60
+
61
+ GameObject hoge;
62
+
63
+
64
+
65
+ void Start(){
66
+
67
+ hoge = GameObject.Find("hoge"); // Findして hoge を参照しておく
68
+
69
+ hoge.SetActive(false); // オブジェクト hoge を非アクティブに
70
+
71
+ }
72
+
73
+
74
+
75
+ // このメソッドを実行するとオブジェクト「hoge」がアクティブになる
76
+
77
+ public void HogeActive(){
78
+
79
+ hoge.SetActive(true);
80
+
81
+ }
82
+
83
+
84
+
85
+ ```