Eonirr

Untitled

Nov 28th, 2025
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. using UnityEditor;
  2. using UnityEngine;
  3. using System.Reflection;
  4.  
  5. [CustomEditor(typeof(AudioManager))]
  6. public class AudioManagerEditor : Editor
  7. {
  8. private bool showClips = true;
  9.  
  10. public override void OnInspectorGUI()
  11. {
  12. AudioManager am = (AudioManager)target;
  13.  
  14. DrawDefaultInspector();
  15.  
  16. GUILayout.Space(10);
  17.  
  18. showClips = EditorGUILayout.Foldout(showClips, "Audio Clips");
  19.  
  20. if (showClips)
  21. {
  22. FieldInfo[] fields = typeof(AudioManager).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
  23.  
  24. foreach (var field in fields)
  25. {
  26. if (field.FieldType == typeof(AudioClip))
  27. {
  28. AudioClip current = (AudioClip)field.GetValue(am);
  29. AudioClip newClip = (AudioClip)EditorGUILayout.ObjectField(field.Name, current, typeof(AudioClip), false);
  30.  
  31. if (newClip != current)
  32. {
  33. Undo.RecordObject(am, "Modify AudioClip");
  34. field.SetValue(am, newClip);
  35. EditorUtility.SetDirty(am);
  36. }
  37. }
  38. }
  39. }
  40. }
  41. }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment