Eonirr

Untitled

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