public override void OnInspectorGUI() { base.OnInspectorGUI(); FindScriptableobjects findScriptableobjects = target as FindScriptableobjects; GUILayout.Space(50); //元のInspector部分を表示 if (GUILayout.Button("適用")) { findScriptableobjects.find_scriptableobjects_in_folda(); } //EditorApplication.playmodeStateChanged += () => //{ // findScriptableobjects.find_scriptableobjects_in_folda(); //}; EditorSceneManager.sceneOpened += OnOpened; }
private static void OnOpened(Scene scene, OpenSceneMode mode) { FindScriptableobjects findScriptableobjects = new FindScriptableobjects(); findScriptableobjects.find_scriptableobjects_in_folda(); }
/// <summary> /// ゲーム開始時にスクリプタブルオブジェクトから読み取ったアイテム情報をQueueに格納する。 /// ここでいうアイテム情報とは、 /// [1]UIなどに表示するアイテムの名前 /// [2]フィールドに配置するゲームオブジェクト(プレファブ) /// [3]格納する順番 /// [4]アイテムのポイント /// [5]アイテムをどこに配置するか /// [6]アイテムのヒント /// である /// </summary> /// private void InstanceItemGameObjects() { _odaiLeftAmount = 0; findScriptableObject = this.GetComponent <FindScriptableobjects>(); //お題を混ぜる queue_shuffle(); int kakunoujyun = 0; //以下は元データ(scriptableobjects)の数だけカウントされる for (int i = 0; i < findScriptableObject.ItemsList.Count; i++) { //☆[重要]☆ //ItemsList自体は生成するアイテム情報だけを持ったクラスである。 //そのため、以下でgameObjectを生成する var sourceinformation = findScriptableObject.ItemsList[i]; if (sourceinformation.ItemObject == null) { continue; } else { GameObject instancedGameObject = Instantiate(sourceinformation.ItemObject); var iteminformation = instancedGameObject.AddComponent <ItemInformation>(); //実際にアイテムをQに配置してよいか調べる変数 //情報の記入漏れがあるとアイテムは格納されない bool itemGeneratedAlsoIsAllowedTo; itemGeneratedAlsoIsAllowedTo = CheckNoMissFromItemInformation(sourceinformation); if (itemGeneratedAlsoIsAllowedTo == false) { Destroy(instancedGameObject); continue; } else { iteminformation.itemInformation(sourceinformation.ItemName, sourceinformation.ItemObject, kakunoujyun, sourceinformation.ItemPoint, (int)sourceinformation.positionEnumerate, sourceinformation.ItemHint ); kakunoujyun += 1; } //アイテムをQに格納する _itemQ.Enqueue(instancedGameObject); } } _odaiLeftAmount = _itemQ.Count + 1; OdaiUpadte(); //byte[] data = System.Text.Encoding.ASCII.GetBytes(element.ItemName); //string hoge = null; //for (int i = 0; i < data.Length; i++) //{ // Debug.Log(Convert.ToString(data[i], 16) + " - "); //} //Debug.Log("-------------------------------------------"); }