public class ExampleClass : EditorWindow { public AudioClip exampleClip; [MenuItem("Example/Spell Builder")] private static void Init() { var window = GetWindow("Spell Builder"); window.Show(); } private void OnGUI() { exampleClip = EditorGUILayout.ObjectField(exampleClip, typeof(AudioClip), false); if (GUILayout.Button("Build")) { var assetName = "Do a string field like the audio clip example." var defaultPath = $"Assets/{assetName}.asset"; var instance = ScriptableObject.CreateInstance(); instance.SpellActivationClip = exampleClip; var AssetDatabase.CreateAsset(instance, defaultPath); AssetDatabase.SaveAssets(); } } }