public override void Serialize(ExporterEntry entry, Dictionary <string, Extension> extensions, UnityEngine.Object component = null)
        {
            if (!ENTRY_CLIPS.ContainsKey(entry))
            {
                ENTRY_CLIPS.Add(entry, new List <SeinAudioClip>());
                ENTRY_URIS.Add(entry, new Dictionary <AudioClip, string>());
            }

            Sein_audioClipsExtension extension;
            var source = component as SeinAudioSource;

            if (!extensions.ContainsKey(ExtensionName))
            {
                extension = new Sein_audioClipsExtension();
                AddExtension(extensions, extension);
            }
            else
            {
                extension = (Sein_audioClipsExtension)extensions["Sein_audioClips"];
            }

            var list = ENTRY_CLIPS[entry];
            var uris = ENTRY_URIS[entry];

            foreach (var c in source.clips)
            {
                var clip = c.clip;
                if (c.clip == null)
                {
                    throw new Exception("Clip '" + c.name + "' has no audio source!");
                }

                if (list.Contains(clip))
                {
                    continue;
                }

                var newClip = new Sein_audioClipsExtension.AudioClip();
                newClip.name   = clip.name;
                newClip.mode   = clip.mode;
                newClip.isLazy = clip.isLazy;

                if (uris.ContainsKey(clip.clip))
                {
                    newClip.uri = uris[clip.clip];
                }
                else
                {
                    newClip.uri = SaveAudio(clip.clip);
                }

                list.Add(clip);
                extension.clips.Add(newClip);
            }
        }
        private IEnumerator LoadClips(EditorImporter importer, Sein_audioClipsExtension extension)
        {
            var clips    = extension.clips;
            var basePath = Path.Combine(importer.importDirectoryPath, "audios");

            Directory.CreateDirectory(basePath);
            int i = 0;

            foreach (var clip in clips)
            {
                LoadClip(clip, importer.gltfDirectoryPath, basePath, i);
                importer.SetProgress("AUDIO", (i + 1), clips.Count);
                i += 1;

                yield return(null);
            }
        }