public override void OnInspectorGUI() { TileListEntity database = target as TileListEntity; if (GUILayout.Button("Button")) { // 画像データを取得 Sprite[] sprites = AssetDatabase.LoadAllAssetsAtPath("Assets/Image/images_size_32.png").OfType <Sprite>().ToArray(); database.tileList.Clear(); for (int i = 0; i < sprites.Length; i++) { Panel panel = new Panel(); panel.sprite = sprites[i]; if (i < wordList.Count) { panel.words = wordList[i]; } else { panel.words.Add("ななし"); } database.tileList.Add(panel); } } base.OnInspectorGUI(); EditorUtility.SetDirty(target); }
// データベースからランダムにデータを持ってくる Panel[] GetRandomPanelDataSet(TileListEntity database) { // UnityEngine.Random.InitState(1); // データが壊れないようにコピーする List <Panel> databaseCopy = new List <Panel>(database.tileList); // 渡すデータを用意する Panel[] panels = new Panel[panelCores.Length]; for (int i = 0; i < panelCores.Length; i++) { // ランダムに選んで格納 int r = UnityEngine.Random.Range(1, databaseCopy.Count); // データベースの0には人を入れるから1以上 panels[i] = databaseCopy[r]; // 選んだものは除外 databaseCopy.RemoveAt(r); if (databaseCopy.Count == 0) { break; } } return(panels); }