private void OnGUI() { VoiceerEditorUtility.UiTitleBox(TitleString, VoiceerEditorUtility.BackGroundImage); if (_loadedPreset == null) { LoadPresetHeader(); return; } EditPresetHeader(); _loadedPreset.hideFlags = HideFlags.NotEditable; _loadedPreset.metaData.url = EditorGUILayout.TextField("URL:", _loadedPreset.metaData.url); _loadedPreset.metaData.memo = EditorGUILayout.TextField("その他:", _loadedPreset.metaData.memo); GUILayout.Space(20); _scrollPos = GUILayout.BeginScrollView(_scrollPos); { EditorGUI.BeginChangeCheck(); { foreach (Hook trigger in Enum.GetValues(typeof(Hook))) { if (_loadedPreset.GetVoiceSet(trigger) == null) { _loadedPreset.voiceSetList.Add(new VoicePreset.Set(trigger, new Sound())); } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(VoiceerEditorUtility.GetDescriptionLabel(trigger), VoiceerEditorUtility.Bold); var clips = _loadedPreset.GetVoiceSet(trigger).voiceClips; if (_loadedPreset.GetVoiceSet(trigger).voiceClips.Count != 0) { if (GUILayout.Button("-", GUILayout.Width(30))) { clips.RemoveRange(clips.Count - 1, 1); } } if (GUILayout.Button("+", GUILayout.Width(30))) { clips.Add(null); } EditorGUILayout.EndHorizontal(); EditorGUI.indentLevel++; for (int i = 0; i < _loadedPreset.GetVoiceSet(trigger).voiceClips.Count; i++) { _loadedPreset.GetVoiceSet(trigger).voiceClips[i] = (AudioClip)EditorGUILayout.ObjectField( _loadedPreset.GetVoiceSet(trigger).voiceClips[i], typeof(AudioClip), false); } EditorGUI.indentLevel--; } } if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(_loadedPreset); AssetDatabase.SaveAssets(); // エディタを最新の状態にする AssetDatabase.Refresh(); } } GUILayout.EndScrollView(); GUILayout.Space(10); VoiceerEditorUtility.Hr(position.width); if (GUILayout.Button("Preset選択モードに戻る")) { _loadedPreset = null; } GUILayout.Space(10); if (GUILayout.Button("パッケージを出力する")) { VoiceerEditorUtility.ExportPackage(_loadedPreset); } }