コード例 #1
0
    public override void OnInspectorGUI()
    {
        if (style == null)
        {
            style = Resources.Load <EditorStyle>("EditorStyle");
        }
        list = target as SoundList;
        style.Setup();
        if (list.BGMs == null)
        {
            list.BGMs = new List <SoundData>();
        }
        if (list.SEs == null)
        {
            list.SEs = new List <SoundData>();
        }
        EditorGUILayout.BeginHorizontal(style.skin.box, GUILayout.Height(35));
        {
            EditorGUILayout.LabelField("サウンドデータ☆彡", style.Styles["Center"], GUILayout.Height(35));
            if (GUILayout.Button("セーブ", GUILayout.Width(200), GUILayout.Height(35)))
            {
                EditorUtility.SetDirty(list);
                AssetDatabase.SaveAssets();
                Debug.Log("セーブが完了しました!");
            }
        }
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal(style.skin.box, GUILayout.Height(35)); {
            if (GUILayout.Button((foutB ? "▼":"▶") + "BGM" + " 合計" + list.BGMs.Count + "個", style.Styles["Button"], GUILayout.Height(35)))
            {
                foutB = !foutB;
            }
            if (GUILayout.Button("追加", GUILayout.Width(35), GUILayout.Height(35)))
            {
                list.BGMs.Add(new SoundData());
            }
        }
        EditorGUILayout.EndHorizontal();

        if (foutB)
        {
            posB = EditorGUILayout.BeginScrollView(posB, style.Styles["Child"], GUILayout.Height(250));
            if (list.BGMs.Count == 0)
            {
                EditorGUILayout.BeginHorizontal(style.Styles["Child"], GUILayout.Height(35));
                {
                    EditorGUILayout.LabelField("リストが空です", style.Styles["Center"], GUILayout.Height(35));
                    EditorGUILayout.EndHorizontal();
                }
            }
            for (int i = 0; i < list.BGMs.Count; i++)
            {
                EditorGUILayout.BeginHorizontal(style.skin.box);
                {
                    EditorGUILayout.BeginVertical();
                    list.BGMs[i].key   = EditorGUILayout.TextField("名前", list.BGMs[i].key);
                    list.BGMs[i].audio = EditorGUILayout.ObjectField("BGM", list.BGMs[i].audio, typeof(AudioClip), true) as AudioClip;
                    EditorGUILayout.EndVertical();
                    if (GUILayout.Button("×", GUILayout.Width(35), GUILayout.Height(35)))
                    {
                        list.BGMs.Remove(list.BGMs[i]);
                    }
                }
                EditorGUILayout.EndHorizontal();
            }
            EditorGUILayout.EndScrollView();
        }

        EditorGUILayout.BeginHorizontal(style.skin.box, GUILayout.Height(35));
        {
            if (GUILayout.Button((foutS ? "▼" : "▶") + "SE" + " 合計" + list.SEs.Count + "個", style.Styles["Button"], GUILayout.Height(35)))
            {
                foutS = !foutS;
            }
            if (GUILayout.Button("追加", GUILayout.Width(35), GUILayout.Height(35)))
            {
                list.SEs.Add(new SoundData());
            }
        }
        EditorGUILayout.EndHorizontal();
        if (foutS)
        {
            posS = EditorGUILayout.BeginScrollView(posS, style.Styles["Child"], GUILayout.Height(250));
            if (list.SEs.Count == 0)
            {
                EditorGUILayout.BeginHorizontal(style.Styles["Child"], GUILayout.Height(35));
                {
                    EditorGUILayout.LabelField("リストが空です", style.Styles["Center"], GUILayout.Height(35));
                    EditorGUILayout.EndHorizontal();
                }
            }
            for (int i = 0; i < list.SEs.Count; i++)
            {
                EditorGUILayout.BeginHorizontal(style.skin.box);
                {
                    EditorGUILayout.BeginVertical();
                    list.SEs[i].key   = EditorGUILayout.TextField("名前", list.SEs[i].key);
                    list.SEs[i].audio = EditorGUILayout.ObjectField("SE", list.SEs[i].audio, typeof(AudioClip), true) as AudioClip;
                    EditorGUILayout.EndVertical();
                    if (GUILayout.Button("×", GUILayout.Width(35), GUILayout.Height(35)))
                    {
                        list.SEs.Remove(list.SEs[i]);
                    }
                }
                EditorGUILayout.EndHorizontal();
            }
            EditorGUILayout.EndScrollView();
        }
    }