using System.Collections; using System.Collections.Generic; using UnityEngine;
public class NewBehaviourScript : MonoBehaviour { public int numButtons; private GameObject[] buttons = new GameObject[25]; // Use this for initialization void Start () { this.buttons = GameObject.FindGameObjectsWithTag ("button"); Debug.Log (buttons.Length); } }
これをあるシーンに使ったら 一見何も関係なさそうなpublic int numButtons;を入れるとログは27、入れないと0が出ました。 別のシーンで使ったら合ってもなくても0でした。 numbuttonsはスクロールパネル上にボタンのプレハブを大量に並べるときにつくった変数で、インスペクタ上で27で上のどちらのシーン上にも存在しています。 試しに前者のシーンでnumbuttonsに26を設定したらログの27が26になりました。 配列の大きさを決める表現が間違っていたら元も子もないですが、 それにしてもなぜ関係ない変数が干渉してくるのか理解できません。