Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEditor;
- using System;
- using System.Reflection;
- using System.Collections.Generic;
- [CustomEditor(typeof(AudioManager))]
- public class AudioManagerEditor : Editor
- {
- public override void OnInspectorGUI()
- {
- AudioManager am = (AudioManager)target;
- GUILayout.Label("Audio Clips (via reflection)", EditorStyles.boldLabel);
- FieldInfo[] fields = typeof(AudioManager).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
- List<AudioClip> clips = new List<AudioClip>();
- foreach (var field in fields)
- {
- // Vérifie que c’est un AudioClip
- 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);
- }
- clips.Add(newClip);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment