####1. インスペクターからアタッチする
[SerializeField]
をつけてインスペクターからアタッチする。
数が多くないのであれば、これが楽です。スクリプト側でFindを飛ばす必要もありません。
最初からシーン上に存在しているもの(たとえばGUIなど)なら取扱しやすいです。
cs
1[SerializeField] GameObject ScrollView1;
これをアタッチしたオブジェクトのインスペクターを開いて、そこに対象のオブジェクトをドラッグします。
####2. ScrollView も子オブジェクトにする
空のGameObjectを作り、その子としてScrollViewを登録して Transform.Find
で処理
たとえば、MenuPanel
とかいう空オブジェクトを作りその子にScrollViewを2つとも入れる。など
####3. 最初はアクティブにしてスクリプトで非アクティブにする
スクリプト側で参照をとってからアクティブの管理を行う方法です。
参照さえ取れてれば非アクティブにしても問題ありません。Start
でやってますが、Awake
でももちろんOKです
cs
1
2GameObject hoge;
3
4void Start() {
5 hoge = GameObject.Find("hoge");
6 hoge.SetActive(false);
7}
8
9public void OnHoge (){
10 hoge.SetActive(true);
11}
12
####4. Resources.FindObjectsOfTypeAll を使う
Resources.FindObjectsOfTypeAll
を使ってすべてのオブジェクトを取得する。
※ あまりおすすめしません。
Resources.FindObjectsOfTypeAll
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/05 07:34