Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEditor;
- using UnityEngine;
- using System.Reflection;
- [CustomEditor(typeof(AudioManager))]
- public class AudioManagerEditor : Editor
- {
- private bool showClips = true;
- public override void OnInspectorGUI()
- {
- AudioManager am = (AudioManager)target;
- DrawDefaultInspector();
- GUILayout.Space(10);
- showClips = EditorGUILayout.Foldout(showClips, "Audio Clips");
- if (showClips)
- {
- FieldInfo[] fields = typeof(AudioManager).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
- foreach (var field in fields)
- {
- if (field.FieldType == typeof(AudioClip))
- {
- AudioClip current = (AudioClip)field.GetValue(am);
- AudioClip newClip = (AudioClip)EditorGUILayout.ObjectField(field.Name, current, typeof(AudioClip), false);
- if (newClip != current)
- {
- Undo.RecordObject(am, "Modify AudioClip");
- field.SetValue(am, newClip);
- EditorUtility.SetDirty(am);
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment