Exemplo n.º 1
0
        public static AudioClipLoadType GetAudioClipLoadType(AudioClip audioClip)
        {
            AudioClipLoadType result = (AudioClipLoadType)(-1);

            if ((UnityEngine.Object)audioClip != (UnityEngine.Object)null)
            {
                result = audioClip.loadType;
                Manager.audioClipLoadType.TryGetValue(audioClip, out result);
            }
            return(result);
        }
Exemplo n.º 2
0
        public static AudioClipLoadType GetAudioClipLoadType(AudioClip audioClip)
        {
            AudioClipLoadType result = (AudioClipLoadType)(-1);

            if (audioClip != null)
            {
                result = audioClip.loadType;
                audioClipLoadType.TryGetValue(audioClip, out result);
            }
            return(result);
        }
Exemplo n.º 3
0
        public void GetAudio(string url, AudioClipLoadType loadType, Action <AudioClip> callback)
        {
            AudioClip asset = LoadEditorAsset <AudioClip>(url);

            if (asset != null)
            {
                callback.Call(asset);
            }
            else
            {
                fallback.GetAudio(url, loadType, callback);
            }
        }
Exemplo n.º 4
0
    static void Uncompressed()
    {
        string[] folder =
        {
            "Assets/assetbundle/sound",
        };
        string [] acs = AssetDatabase.FindAssets("t:AudioClip", folder);

        int n = acs.Length;

        AssetDatabase.StartAssetEditing();

        for (int i = 0; i < n; i++)
        {
            string path = AssetDatabase.GUIDToAssetPath(acs[i]);
            if (EditorUtility.DisplayCancelableProgressBar(string.Format("{0}", path), i + "/" + acs.Length, (float)i / (float)acs.Length))
            {
                break;
            }

            // Debug.LogFormat("reimport {0}/{1}: {2}", i+1, n, path);
            AudioImporter audioImporter = AssetImporter.GetAtPath(path) as AudioImporter;
            if (audioImporter == null)
            {
                continue;
            }

            AudioClipLoadType t = AudioClipLoadType.DecompressOnLoad;

            AudioClip clip = AssetDatabase.LoadAssetAtPath <AudioClip>(path);
            if (clip.length >= 5)
            {
                t = AudioClipLoadType.Streaming;
            }

            AudioImporterSampleSettings audioImporterSampleSettings = audioImporter.defaultSampleSettings;
            if (audioImporterSampleSettings.loadType != t)
            {
                Debug.LogFormat("{0} {1} {2}", path, clip.length, t);

                audioImporterSampleSettings.loadType = AudioClipLoadType.Streaming;
                audioImporter.defaultSampleSettings  = audioImporterSampleSettings;
                audioImporter.SaveAndReimport();
            }
        }

        AssetDatabase.StopAssetEditing();
        // AssetDatabase.SaveAssets();
        // AssetDatabase.Refresh();
        EditorUtility.ClearProgressBar();
    }
Exemplo n.º 5
0
        /// <summary>
        /// Facilitates a user settable/gettable AudioClip.loadType
        /// </summary>
        /// <returns>-1 if audioClip is null or audioClip.loadType if this manager did not touch the audioClip</returns>
        public static AudioClipLoadType GetAudioClipLoadType(AudioClip audioClip)
        {
            AudioClipLoadType ret = (AudioClipLoadType)(-1);

#if UNITY_4 || UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7
            // audioClipLoadType.TryGetValue(audioClip, out ret); //TODO: fix
#else
            if (audioClip != null)
            {
                ret = audioClip.loadType;
                audioClipToLoadType.TryGetValue(audioClip, out ret);
            }
#endif
            return(ret);
        }
Exemplo n.º 6
0
        public override void ApplyDefaults()
        {
            base.ApplyDefaults();

            this.SuffixFilter = ".ogg";

            this.forceToMono       = false;
            this.normalize         = true;
            this.loadInBackground  = true;
            this.ambisonic         = false;
            this.loadType          = AudioClipLoadType.Streaming;
            this.preloadAudioData  = true;
            this.compressionFormat = AudioCompressionFormat.Vorbis;
            this.quality           = 100;
            this.sampleRateSetting = AudioSampleRateSetting.PreserveSampleRate;
        }
Exemplo n.º 7
0
 public AudioViewerData(string mode, AudioInfo audioInfo)
 {
     _mode                            = (AudioViewerMode)Enum.Parse(typeof(AudioViewerMode), mode);
     ForceToMono                      = audioInfo.ForceToMono;
     LoadInBackground                 = audioInfo.LoadInBackground;
     Ambisonic                        = audioInfo.Ambisonic;
     StandAloneAudioClipLoadType      = audioInfo.StandAloneAudioClipLoadType;
     AndroidAudioClipLoadType         = audioInfo.AndroidAudioClipLoadType;
     iOSAudioClipLoadType             = audioInfo.iOSAudioClipLoadType;
     StandAloneAudioCompressionFormat = audioInfo.StandAloneAudioCompressionFormat;
     AndroidAudioCompressionFormat    = audioInfo.AndroidAudioCompressionFormat;
     iOSAudioCompressionFormat        = audioInfo.iOSAudioCompressionFormat;
     OriginSize                       = audioInfo.OriginSize;
     CompressedSize                   = audioInfo.CompressedSize;
     All = "All";
 }
Exemplo n.º 8
0
        public override void DrawRuleGUI()
        {
            base.DrawRuleGUI();
            GUILayout.Space(10);
            EditorGUILayout.LabelField("Audio Import Settings", EditorStyles.boldLabel);
            EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 2), QuickEditorColors.DarkGrayX11);
            GUILayout.Space(3);

            forceToMono = EditorGUILayout.Toggle(AssetImportStyles.Audio.ForceToMono, forceToMono);
            EditorGUI.indentLevel++;
            EditorGUI.BeginDisabledGroup(forceToMono);
            normalize = EditorGUILayout.Toggle(AssetImportStyles.Audio.Normalize, normalize);
            EditorGUI.EndDisabledGroup();
            EditorGUI.indentLevel--;
            loadInBackground = EditorGUILayout.Toggle(AssetImportStyles.Audio.LoadBackground, loadInBackground);
            ambisonic        = EditorGUILayout.Toggle(AssetImportStyles.Audio.Ambisonic, ambisonic);

            GUILayout.Space(6);
            EditorGUILayout.LabelField("Default Import Settings", EditorStyles.boldLabel);
            EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 2), QuickEditorColors.DarkGrayX11);
            GUILayout.Space(3);

            loadType = (AudioClipLoadType)EditorGUILayout.EnumPopup(AssetImportStyles.Audio.LoadType, loadType);

            EditorGUI.BeginDisabledGroup(loadType == AudioClipLoadType.Streaming ? true : false);
            preloadAudioData = EditorGUILayout.Toggle(AssetImportStyles.Audio.PreloadAudioData, preloadAudioData);
            EditorGUI.EndDisabledGroup();

            if (loadType == AudioClipLoadType.Streaming)
            {
                preloadAudioData = false;
            }

            int compressionFormatIndex = Math.Max(Array.FindIndex(AssetImportStyles.Audio.CompressionEnumOpts, opt => opt.Equals(compressionFormat)), 0);

            compressionFormatIndex = EditorGUILayout.Popup(AssetImportStyles.Audio.CompressionFormat, compressionFormatIndex, AssetImportStyles.Audio.CompressionFormatOpts);
            compressionFormat      = AssetImportStyles.Audio.CompressionEnumOpts[compressionFormatIndex];
            EditorGUI.BeginDisabledGroup(compressionFormat != AudioCompressionFormat.Vorbis ? true : false);
            quality = EditorGUILayout.IntSlider(AssetImportStyles.Audio.Quality, quality, 1, 100);
            EditorGUI.EndDisabledGroup();

            sampleRateSetting = (AudioSampleRateSetting)EditorGUILayout.EnumPopup(AssetImportStyles.Audio.SampleRateSetting, sampleRateSetting);
            if (sampleRateSetting == AudioSampleRateSetting.OverrideSampleRate)
            {
                sampleRate = (SampleRates)EditorGUILayout.EnumPopup(AssetImportStyles.Audio.SampleRate, sampleRate);
            }
        }
 // Apply settings Method which searches and adds all audio clips in an array, and for each clip, adds the settings, overrides it for the selected platform
 // and imports the newly applied asset again, therefore applying all the settings properly.
 static void ApplySettings(uint sampleRate, AudioCompressionFormat format, AudioClipLoadType loadType, string platform)
 {
     Object[] audioclips = GetSelectedAudioclips();
     Selection.objects = new Object[0];
     foreach (AudioClip audioclip in audioclips)
     {
         string        path                   = AssetDatabase.GetAssetPath(audioclip);
         AudioImporter audioImporter          = AssetImporter.GetAtPath(path) as AudioImporter;
         AudioImporterSampleSettings settings = audioImporter.defaultSampleSettings;
         settings.compressionFormat  = format;
         settings.sampleRateSetting  = AudioSampleRateSetting.OverrideSampleRate;
         settings.sampleRateOverride = sampleRate;
         settings.loadType           = loadType;
         audioImporter.SetOverrideSampleSettings(platform, settings);
         AssetDatabase.ImportAsset(path);
     }
 }
Exemplo n.º 10
0
 public void GetAudio(string url, AudioClipLoadType loadType, Action <AudioClip> callback, string alias = null)
 {
     VerifyUrl(url);
     if (!url.IsEmpty())
     {
         AudioClip c = assetCache.Get(url) as AudioClip;
         if (c != null)
         {
             callback(c);
         }
         else
         {
             if (url.Is(FileType.Asset))
             {
                 GetAsset <AudioClip>(url, callback, false);
             }
             else
             {
                 callbacks.Add(url, callback);
                 if (callbacks.GetCount(url) == 1)
                 {
                     log.Debug("Loading {0}", url);
                     loader.GetAudio(pathConverter(url), loadType, clip =>
                     {
                         if (clip != null)
                         {
                             AddToCache(alias, url, clip);
                         }
                         List <Delegate> slot = callbacks.GetSlot(url);
                         foreach (Delegate d in slot)
                         {
                             ((Action <AudioClip>)d)(clip);
                         }
                         callbacks.Remove(url);
                     });
                 }
             }
         }
     }
     else
     {
         callback(null);
     }
 }
    private static int get_loadType(IntPtr L)
    {
        object obj = null;
        int    result;

        try
        {
            obj = ToLua.ToObject(L, 1);
            AudioClip         audioClip = (AudioClip)obj;
            AudioClipLoadType loadType  = audioClip.get_loadType();
            ToLua.Push(L, loadType);
            result = 1;
        }
        catch (Exception ex)
        {
            result = LuaDLL.toluaL_exception(L, ex, (obj != null) ? ex.get_Message() : "attempt to index loadType on a nil value");
        }
        return(result);
    }
Exemplo n.º 12
0
        public void GetAudio(string url, AudioClipLoadType loadType, Action <AudioClip> callback)
        {
            bool streaming  = (loadType & AudioClipLoadType.Streaming) != 0;
            bool threeD     = (loadType & AudioClipLoadType.ThreeD) != 0;
            bool compressed = (loadType & AudioClipLoadType.Compressed) != 0;

#if WWW_MODULE
            GetWWW(url, !streaming, www => {
                if (www != null)
                {
                    AudioClip a = compressed? www.GetAudioClipCompressed(threeD): www.GetAudioClip(threeD, streaming);
                    callback(a);
                }
                else
                {
                    fallback.GetAudio(url, loadType, callback);
                }
            });
#else
            throw new Exception("Not implemented");
#endif
        }
Exemplo n.º 13
0
    static void SetAudioLoadType(AudioClip clip, AudioClipLoadType loadType, bool refreshImmediately)
    {
        if (clip != null)
        {
            string        assetPath = AssetDatabase.GetAssetPath(clip);
            AudioImporter importer  = AssetImporter.GetAtPath(assetPath) as AudioImporter;
            if (importer != null)
            {
                if (loadType != importer.defaultSampleSettings.loadType)
                {
                    AudioImporterSampleSettings settings = importer.defaultSampleSettings;
                    settings.loadType = loadType;
                    importer.defaultSampleSettings = settings;

                    AssetDatabase.ImportAsset(assetPath);
                    if (refreshImmediately)
                    {
                        AssetDatabase.Refresh();
                    }
                }
            }
        }
    }
Exemplo n.º 14
0
        public override void DrawInnerGUI()
        {
            DrawFilterGUI();

            GUILayout.Space(6);
            EditorGUILayout.LabelField("Audio", EditorStyles.boldLabel);
            EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 2), QuickEditorColors.DarkGrayX11);
            GUILayout.Space(3);

            m_forceToMono      = EditorGUILayout.Toggle("Force To Mono", m_forceToMono);
            m_loadInBackground = EditorGUILayout.Toggle("Load In Background", m_loadInBackground);

            GUILayout.Space(6);
            EditorGUILayout.LabelField("Default Import Settings", EditorStyles.boldLabel);
            EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 2), QuickEditorColors.DarkGrayX11);
            GUILayout.Space(3);

            m_AudioClipLoadType = (AudioClipLoadType)EditorGUILayout.EnumPopup("Load Type", m_AudioClipLoadType);

            EditorGUI.BeginDisabledGroup(m_AudioClipLoadType == AudioClipLoadType.Streaming ? true : false);
            m_preloadAudioData = EditorGUILayout.Toggle("Preload Audio Data", m_preloadAudioData);
            EditorGUI.EndDisabledGroup();

            if (m_AudioClipLoadType == AudioClipLoadType.Streaming)
            {
                m_preloadAudioData = false;
            }

            m_audioCompressionFormat = (AudioCompressionFormat)EditorGUILayout.EnumPopup("Compression Format", m_audioCompressionFormat);
            m_audioQuality           = EditorGUILayout.IntSlider("Quality", m_audioQuality, 1, 100);
            m_sampleRateSetting      = (AudioSampleRateSetting)EditorGUILayout.EnumPopup("Sample Rate Setting", m_sampleRateSetting);

            if (m_sampleRateSetting == AudioSampleRateSetting.OverrideSampleRate)
            {
                m_sampleRateOverride = (SampleOverrideValues)EditorGUILayout.EnumPopup("Sample Rate Setting", m_sampleRateOverride);
            }
        }
Exemplo n.º 15
0
    public static void DealAudioImporter(AudioClip clip, AudioImporter importer, bool forceMono, bool bSensitive = false, bool compressSampleRate = true)
    {
        bool bChange = false;

        if (clip == null)
        {
            return;
        }

        AudioImporterSampleSettings androidSetting = importer.GetOverrideSampleSettings("Android");
        AudioImporterSampleSettings iosSetting     = importer.GetOverrideSampleSettings("iPhone");

        if (clip.length >= 10)
        {
            if (androidSetting.loadType != AudioClipLoadType.Streaming)
            {
                androidSetting.loadType = AudioClipLoadType.Streaming;
                iosSetting.loadType     = AudioClipLoadType.Streaming;
                bChange = true;
            }

            AudioCompressionFormat newFmt = AudioCompressionFormat.Vorbis;
            if (newFmt != androidSetting.compressionFormat)
            {
                androidSetting.compressionFormat = newFmt;
                iosSetting.compressionFormat     = newFmt;
                androidSetting.quality           = 0.01f;
                iosSetting.quality = 0.01f;
                bChange            = true;
            }
        }
        else if (clip.length < 10 && clip.length >= 1)
        {
            AudioClipLoadType newLoadType = AudioClipLoadType.CompressedInMemory;
            if (newLoadType != androidSetting.loadType)
            {
                androidSetting.loadType = newLoadType;
                iosSetting.loadType     = newLoadType;
                bChange = true;
            }
            AudioCompressionFormat newFmt = bSensitive ? AudioCompressionFormat.ADPCM : AudioCompressionFormat.Vorbis;
            if (newFmt != androidSetting.compressionFormat)
            {
                androidSetting.compressionFormat = newFmt;
                iosSetting.compressionFormat     = newFmt;
                bChange = true;
                if (newFmt == AudioCompressionFormat.Vorbis)
                {
                    androidSetting.quality = 0.01f;
                    iosSetting.quality     = 0.01f;
                }
            }
        }
        else if (clip.length < 1)
        {
            AudioClipLoadType newLoadType = bSensitive ? AudioClipLoadType.DecompressOnLoad : AudioClipLoadType.CompressedInMemory;
            if (androidSetting.loadType != newLoadType)
            {
                androidSetting.loadType = newLoadType;
                iosSetting.loadType     = newLoadType;
                bChange = true;
            }
            AudioCompressionFormat newFmt = AudioCompressionFormat.ADPCM;
            if (newFmt != androidSetting.compressionFormat)
            {
                androidSetting.compressionFormat = newFmt;
                iosSetting.compressionFormat     = newFmt;
                bChange = true;
            }
        }

        var sampleRate = (uint)(compressSampleRate ? 22050 : 44100);

        if (androidSetting.sampleRateSetting != AudioSampleRateSetting.OverrideSampleRate || androidSetting.sampleRateOverride != sampleRate)
        {
            androidSetting.sampleRateSetting  = AudioSampleRateSetting.OverrideSampleRate;
            iosSetting.sampleRateSetting      = AudioSampleRateSetting.OverrideSampleRate;
            androidSetting.sampleRateOverride = sampleRate;
            iosSetting.sampleRateOverride     = sampleRate;
            bChange = true;
        }

        if (importer.forceToMono != forceMono)
        {
            importer.forceToMono = forceMono;
            bChange = true;
        }
        if (importer.loadInBackground && androidSetting.loadType != AudioClipLoadType.Streaming)
        {
            importer.loadInBackground = false;
            bChange = true;
        }
        if (importer.preloadAudioData)
        {
            importer.preloadAudioData = false;
            bChange = true;
        }

        if (bChange)
        {
            importer.SetOverrideSampleSettings("Android", androidSetting);
            importer.SetOverrideSampleSettings("iPhone", iosSetting);
            importer.SaveAndReimport();
        }
    }
Exemplo n.º 16
0
 public void GetAudio(string url, AudioClipLoadType loadType, Action <AudioClip> callback)
 {
     log.Warn("Failed to access {0}", url);
     callback.Call(null);
 }
Exemplo n.º 17
0
        //オーディオファイルの設定を変更する
        private static void ChangeSetting(string audioPath, bool forceToMono, bool normalize, bool ambisonic, bool loadInBackground, AudioClipLoadType loadType, float quality, AudioCompressionFormat compressionFormat, AudioSampleRateSetting sampleRateSetting)
        {
            if (AssetDatabase.LoadAssetAtPath <AudioClip>(audioPath) == null)
            {
                return;
            }
            var importer = AssetImporter.GetAtPath(audioPath) as AudioImporter;

            importer.forceToMono = forceToMono;

            var serializedObject  = new SerializedObject(importer);
            var normalizeProperty = serializedObject.FindProperty("m_Normalize");

            normalizeProperty.boolValue = normalize;
            serializedObject.ApplyModifiedProperties();

            importer.ambisonic        = ambisonic;
            importer.loadInBackground = loadInBackground;

            var settings = importer.defaultSampleSettings;

            settings.loadType          = loadType;
            settings.quality           = quality;
            settings.compressionFormat = compressionFormat;
            settings.sampleRateSetting = sampleRateSetting;

            importer.defaultSampleSettings = settings;

            Debug.Log(audioPath + "の設定を変更しました");
        }
Exemplo n.º 18
0
    void DrawEntryBoard(List <string> pathList)
    {
        if (currentAudioEntry == null)
        {
            currentAudioEntry = new AudioEntry();
            displayId         = "";
        }

        EditorGUILayout.BeginVertical("box", GUILayout.Width(200));

        string    key = displayId, path = pathList[0];
        int       loadLevel = currentAudioEntry.loadLevel;
        AudioType type      = currentAudioEntry.type;

        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField(new GUIContent("ID:"), GUILayout.Width(50));
        key = EditorGUILayout.TextField(key);

        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField(new GUIContent("Path:"), GUILayout.Width(50));

        Color oldColor = GUI.color;

        GUI.color = Color.yellow;
        EditorGUILayout.LabelField(path);

        GUI.color = oldColor;

        EditorGUILayout.EndHorizontal();

        float inherentVolume = currentAudioEntry.inherentVolume;

        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField(new GUIContent("Volume:"), GUILayout.Width(50));
        inherentVolume = EditorGUILayout.Slider(inherentVolume, 0.0f, 1.0f);

        EditorGUILayout.EndHorizontal();

        currentAudioEntry.inherentVolume = inherentVolume;

        EditorGUILayout.BeginHorizontal();


        EditorGUILayout.LabelField(new GUIContent("Load Level:"), GUILayout.Width(60));
        loadLevel = EditorGUILayout.IntField(loadLevel, GUILayout.Width(15));

        AudioClipLoadType aclt = currentAudioEntry.loadType;

        EditorGUILayout.Space();

        EditorGUILayout.LabelField(new GUIContent("Type:"), GUILayout.Width(30));

        aclt = (AudioClipLoadType)EditorGUILayout.EnumPopup(aclt, GUILayout.Width(140));

        currentAudioEntry.loadType = aclt;


        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField(new GUIContent("Type:"));

        type = (AudioType)EditorGUILayout.EnumPopup(type, GUILayout.Width(50));

        EditorGUILayout.EndHorizontal();

        EditorGUILayout.EndVertical();

        displayId = key;
        currentAudioEntry.path      = path;
        currentAudioEntry.loadLevel = loadLevel;
        currentAudioEntry.type      = type;
    }
        private void OnSampleSettingGUI(BuildTargetGroup platform, MultiValueStatus status, bool selectionContainsTrackerFile, ref SampleSettingProperties properties, bool disablePreloadAudioDataOption)
        {
            //Load Type
            EditorGUI.showMixedValue = status.multiLoadType && !properties.loadTypeChanged;
            EditorGUI.BeginChangeCheck();
            AudioClipLoadType newLoadType = (AudioClipLoadType)EditorGUILayout.EnumPopup("Load Type", properties.settings.loadType);

            if (EditorGUI.EndChangeCheck())
            {
                properties.settings.loadType = newLoadType;
                properties.loadTypeChanged   = true;
            }

            using (new EditorGUI.DisabledScope(disablePreloadAudioDataOption))
            {
                if (disablePreloadAudioDataOption)
                {
                    EditorGUILayout.Toggle("Preload Audio Data", false);
                }
                else
                {
                    EditorGUILayout.PropertyField(m_PreloadAudioData);
                }
            }

            if (!selectionContainsTrackerFile)
            {
                //Compression format
                AudioCompressionFormat[] allowedFormats = GetFormatsForPlatform(platform);
                EditorGUI.showMixedValue = status.multiCompressionFormat && !properties.compressionFormatChanged;
                EditorGUI.BeginChangeCheck();
                AudioCompressionFormat newFormat = (AudioCompressionFormat)EditorGUILayout.IntPopup("Compression Format",
                                                                                                    (int)properties.settings.compressionFormat,
                                                                                                    Array.ConvertAll(allowedFormats, value => value.ToString()),
                                                                                                    Array.ConvertAll(allowedFormats, value => (int)value));
                if (EditorGUI.EndChangeCheck())
                {
                    properties.settings.compressionFormat = newFormat;
                    properties.compressionFormatChanged   = true;
                }

                //Quality
                if (CompressionFormatHasQuality(properties.settings.compressionFormat))
                {
                    EditorGUI.showMixedValue = status.multiQuality && !properties.qualityChanged;
                    EditorGUI.BeginChangeCheck();
                    int newQuality = EditorGUILayout.IntSlider("Quality", (int)Mathf.Clamp(properties.settings.quality * 100.0f, 1.0f, 100.0f), 1, 100);
                    if (EditorGUI.EndChangeCheck())
                    {
                        properties.settings.quality = 0.01f * newQuality;
                        properties.qualityChanged   = true;
                    }
                }

                if (platform != BuildTargetGroup.WebGL)
                {
                    //Sample rate settings
                    EditorGUI.showMixedValue = status.multiSampleRateSetting && !properties.sampleRateSettingChanged;
                    EditorGUI.BeginChangeCheck();
                    AudioSampleRateSetting newSetting = (AudioSampleRateSetting)EditorGUILayout.EnumPopup("Sample Rate Setting", properties.settings.sampleRateSetting);
                    if (EditorGUI.EndChangeCheck())
                    {
                        properties.settings.sampleRateSetting = newSetting;
                        properties.sampleRateSettingChanged   = true;
                    }

                    //Sample rate settings
                    if (properties.settings.sampleRateSetting == AudioSampleRateSetting.OverrideSampleRate)
                    {
                        EditorGUI.showMixedValue = status.multiSampleRateOverride && !properties.sampleRateOverrideChanged;
                        EditorGUI.BeginChangeCheck();
                        int newRate = EditorGUILayout.IntPopup("Sample Rate", (int)properties.settings.sampleRateOverride,
                                                               Styles.kSampleRateStrings, Styles.kSampleRateValues);
                        if (EditorGUI.EndChangeCheck())
                        {
                            properties.settings.sampleRateOverride = (uint)newRate;
                            properties.sampleRateOverrideChanged   = true;
                        }
                    }
                }

                //TODO include the settings for things like HEVAG
                EditorGUI.showMixedValue = false;
            }
        }
Exemplo n.º 20
0
    void DrawEntryBoard(Dictionary <string, AudioEntry> dictionary)
    {
        if (dictionary == null)
        {
            return;
        }

        if (displayId != "" && currentAudioEntry == null)
        {
            if (dictionary.TryGetValue(displayId, out currentAudioEntry))
            {
            }
        }

        if (currentAudioEntry == null)
        {
            currentAudioEntry = new AudioEntry( );
        }

        EditorGUILayout.BeginVertical("box", GUILayout.Width(200));

        string key = displayId, path = currentAudioEntry.path;
        int    loadLevel = currentAudioEntry.loadLevel;


        AudioType type = currentAudioEntry.type;

        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField(new GUIContent("ID:"), GUILayout.Width(50));
        key = EditorGUILayout.TextField(key);

        EditorGUILayout.EndHorizontal();


        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField(new GUIContent("Path:"), GUILayout.Width(50));

        Color oldColor = GUI.color;

        GUI.color = Color.yellow;
        EditorGUILayout.LabelField(path);

        GUI.color = oldColor;

        EditorGUILayout.EndHorizontal();
        if (GUILayout.Button("Get Asset Path"))
        {
            Object selectedObj = Selection.activeObject;

            if (selectedObj != null)
            {
                AudioClip audioClip = (AudioClip)selectedObj;

                if (audioClip != null)
                {
                    path = AssetDatabase.GetAssetPath(audioClip.GetInstanceID());
                    DebugWrapper.Log(path);
                    string[] pathSplitted = path.Split('/');

                    bool startAdding = false;

                    string fileName = "";

                    for (int splitedIndex = 0; splitedIndex < pathSplitted.Length; splitedIndex++)
                    {
                        if (startAdding)
                        {
                            fileName += pathSplitted [splitedIndex] + "/";
                        }

                        if (pathSplitted [splitedIndex] == "Resources")
                        {
                            startAdding = true;
                        }
                    }

                    string[] fileNameSplited = fileName.Split('.');
                    path = fileNameSplited[0];

                    DebugWrapper.Log(path);
                }
            }
        }

        float inherentVolume = currentAudioEntry.inherentVolume;

        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField(new GUIContent("Volume:"), GUILayout.Width(50));
        inherentVolume = EditorGUILayout.Slider(inherentVolume, 0.0f, 1.0f);

        EditorGUILayout.EndHorizontal();

        currentAudioEntry.inherentVolume = inherentVolume;


        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField(new GUIContent("Load Level:"), GUILayout.Width(60));
        loadLevel = EditorGUILayout.IntField(loadLevel, GUILayout.Width(15));

        AudioClipLoadType aclt = currentAudioEntry.loadType;

        EditorGUILayout.Space();

        EditorGUILayout.LabelField(new GUIContent("Type:"), GUILayout.Width(30));

        aclt = (AudioClipLoadType)EditorGUILayout.EnumPopup(aclt, GUILayout.Width(140));

        currentAudioEntry.loadType = aclt;

        EditorGUILayout.EndHorizontal();

        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.LabelField(new GUIContent("Type:"));

        type = (AudioType)EditorGUILayout.EnumPopup(type, GUILayout.Width(50));

        EditorGUILayout.EndHorizontal();


        EditorGUILayout.EndVertical();

        displayId = key;
        currentAudioEntry.path      = path;
        currentAudioEntry.loadLevel = loadLevel;
        currentAudioEntry.type      = type;
    }
Exemplo n.º 21
0
 public static void SetAudioClipLoadType(AudioClip audioClip, AudioClipLoadType newLoadType)
 {
     audioClipLoadType[audioClip] = newLoadType;
 }
Exemplo n.º 22
0
        public AudioInformation(string fullPath, string name, bool forceMono, bool loadInBG, bool preload, AudioClipLoadType loadType, AudioCompressionFormat compressionFormat, float quality, AudioSampleRateSetting sampleRateSetting, int sampleRateOverride)
        {
            OrigForceMono = forceMono;
            ForceMono     = forceMono;

            OrigLoadBG = loadInBG;
            LoadBG     = loadInBG;

            OrigPreload = preload;
            Preload     = preload;

            OrigLoadType = loadType;
            LoadType     = loadType;

            OrigCompressionFormat = compressionFormat;
            CompressionFormat     = compressionFormat;

            OrigSampleRateSetting = sampleRateSetting;
            SampleRateSetting     = sampleRateSetting;

            OrigQuality = quality;
            Quality     = quality;

            OrigSampleRateOverride = sampleRateOverride;
            SampleRateOverride     = sampleRateOverride;

            FullPath    = fullPath;
            Name        = name;
            IsSelected  = false;
            HasChanged  = false;
            LastUpdated = DateTime.MinValue.Ticks;
        }
Exemplo n.º 23
0
    private void OnGUI()
    {
        // Grabbing game object which holds configuration
        ImportProperties importProperties = (ImportProperties)AssetDatabase.LoadAssetAtPath("Assets/Prefabs/ImportProperties.prefab", typeof(ImportProperties));

        // Basic Editor Setup
        EditorGUILayout.BeginVertical();
        scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Height(300));

        // Boolean For Applying Editor Props
        GUILayout.Label("Enable Custom Import Settings", EditorStyles.boldLabel);
        enableCustomImportSettings = EditorGUILayout.Toggle("Enable Custom Import Settings", enableCustomImportSettings);

        // Add toggle for if user wants to apply their own import settings
        if (enableCustomImportSettings)
        {
            importProperties.enableCustomImportSetting = enableCustomImportSettings;
        }
        else
        {
            importProperties.enableCustomImportSetting = enableCustomImportSettings;
        }

        // Texture Settings
        GUILayout.Label("Texture Import Settings", EditorStyles.boldLabel);
        maxTextureSizeSelected = EditorGUILayout.Popup("Max Texture Size", maxTextureSizeSelected, maxTextureSizes);
        mipMapLevel            = EditorGUILayout.IntField("Mip Map Level", mipMapLevel);

        // Android Texture Overrides
        overrideTexturesForAndroid       = EditorGUILayout.BeginToggleGroup("Override Texture Settings For Android", overrideTexturesForAndroid);
        maxTextureSizeSelectedForAndroid = EditorGUILayout.Popup("Max Texture Size", maxTextureSizeSelectedForAndroid, maxTextureSizes);
        mipMapLevelForAndroid            = EditorGUILayout.IntField("Mip Map Level", mipMapLevelForAndroid);
        EditorGUILayout.EndToggleGroup();

        // Audio Settings
        GUILayout.Label("Audio Import Settings", EditorStyles.boldLabel);
        audioCompressionFormat = (AudioCompressionFormat)EditorGUILayout.EnumPopup("Audio Compression Format", audioCompressionFormat);
        audioSampleRateSetting = (AudioSampleRateSetting)EditorGUILayout.EnumPopup("Audio Sample Rate Setting", audioSampleRateSetting);
        audioClipLoadType      = (AudioClipLoadType)EditorGUILayout.EnumPopup("Audio Clip Load Type", audioClipLoadType);

        // Android Audio Overrides
        overrideAudioForAndroid          = EditorGUILayout.BeginToggleGroup("Override Audio Settings For Android", overrideAudioForAndroid);
        audioCompressionFormatForAndroid = (AudioCompressionFormat)EditorGUILayout.EnumPopup("Audio Compression Format", audioCompressionFormatForAndroid);
        audioSampleRateSettingForAndroid = (AudioSampleRateSetting)EditorGUILayout.EnumPopup("Audio Sample Rate Setting", audioSampleRateSettingForAndroid);
        audioClipLoadTypeForAndroid      = (AudioClipLoadType)EditorGUILayout.EnumPopup("Audio Clip Load Type", audioClipLoadTypeForAndroid);
        EditorGUILayout.EndToggleGroup();

        EditorGUILayout.EndScrollView();
        EditorGUILayout.EndVertical();

        bool assignImportSettingsButton = GUILayout.Button("Assign Import Settings");

        if (assignImportSettingsButton)
        {
            if (importProperties)
            {
                // Texture Settings
                if (maxTextureSizeSelected >= 0)
                {
                    importProperties.maxTextureSizeSelected = int.Parse(maxTextureSizes[maxTextureSizeSelected]);
                }

                if (overrideTexturesForAndroid)
                {
                    importProperties.overrideTexturesForAndroid       = overrideTexturesForAndroid;
                    importProperties.maxTextureSizeSelectedForAndroid = int.Parse(maxTextureSizes[maxTextureSizeSelectedForAndroid]);
                }

                // Audio Settings
                importProperties.audioCompressionFormat = audioCompressionFormat;
                importProperties.audioSampleRateSetting = audioSampleRateSetting;
                importProperties.audioClipLoadType      = audioClipLoadType;

                if (overrideAudioForAndroid)
                {
                    importProperties.overrideAudioForAndroid          = overrideAudioForAndroid;
                    importProperties.audioCompressionFormatForAndroid = audioCompressionFormatForAndroid;
                    importProperties.audioSampleRateSettingForAndroid = audioSampleRateSettingForAndroid;
                    importProperties.audioClipLoadTypeForAndroid      = audioClipLoadTypeForAndroid;
                }
            }

            Debug.Log("Assigned Import Settings");
        }
    }
Exemplo n.º 24
0
        private void OnGUI()
        {
            style.normal.textColor = Color.red;
            GUILayout.Label("建议 小于200k : " + AudioClipLoadType.DecompressOnLoad + " 大于200k小于1M : " + AudioClipLoadType.CompressedInMemory + " 大于1M : " + AudioClipLoadType.Streaming, style);
            style.normal.textColor = Color.black;
            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.LabelField("Path:");
                currenAudioClipImportData.AssetPath = EditorGUILayout.TextField(currenAudioClipImportData.AssetPath);
                EditorGUILayout.LabelField("NameFilter:", GUILayout.MinWidth(200));
                currenAudioClipImportData.FileFilter = EditorGUILayout.TextField(currenAudioClipImportData.FileFilter);
                if (GUILayout.Button("Save", GUILayout.MinWidth(100)))
                {
                    SetSelectIndexDataInfo();
                }
                if (GUILayout.Button("Delete", GUILayout.MinWidth(100)))
                {
                    AudioClipImportManager.ImportRule.Delete(currentSelectIndex);
                }
                if (GUILayout.Button("New Data", GUILayout.MinWidth(100)))
                {
                    if (string.IsNullOrEmpty(currenAudioClipImportData.AssetPath) ||
                        string.IsNullOrEmpty(currenAudioClipImportData.FileFilter))
                    {
                        return;
                    }
                    AudioClipImportManager.AudioClipImportRule.AudioClipImportData data = GetNextAudioClipImportData();
                    data.AssetPath  = currenAudioClipImportData.AssetPath;
                    data.FileFilter = currenAudioClipImportData.FileFilter;
                    AudioClipImportManager.ImportRule.Add(data);
                    currenAudioClipImportData = data;
                    currentSelectIndex        = data.Index;
                    GetSelectIndexDataInfo(data);
                }
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.Space();
            EditorGUILayout.BeginHorizontal();
            {
                androidClipType =
                    (AudioCompressionFormat)EditorGUILayout.EnumPopup("Android Compression类型", androidClipType);
                androidLoadType = (AudioClipLoadType)EditorGUILayout.EnumPopup("Android Load类型", androidLoadType);
                SetAndroidFormatInfo();
                iPhoneClipType =
                    (AudioCompressionFormat)EditorGUILayout.EnumPopup("iPhone Compression类型", iPhoneClipType);
                iPhoneLoadType = (AudioClipLoadType)EditorGUILayout.EnumPopup("iPhone Load类型", iPhoneLoadType);
                SetiPhoneFormatInfo();
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.Space();
            EditorGUILayout.BeginHorizontal();
            {
                currenAudioClipImportData.IsForceToMono =
                    EditorGUILayout.ToggleLeft("是否开启ForceToMono", currenAudioClipImportData.IsForceToMono);
                currenAudioClipImportData.IsLoadInBackground =
                    EditorGUILayout.ToggleLeft("是否开启LoadInBackground", currenAudioClipImportData.IsLoadInBackground);
                currenAudioClipImportData.IsAmbisonic =
                    EditorGUILayout.ToggleLeft("是否开启Ambisonic", currenAudioClipImportData.IsAmbisonic);
                currenAudioClipImportData.IsPreloadAudioClip =
                    EditorGUILayout.ToggleLeft("是否开启PreloadAudioClip", currenAudioClipImportData.IsPreloadAudioClip);
                currenAudioClipImportData.Index =
                    EditorGUILayout.IntField("Rule Index", currenAudioClipImportData.Index);
                currenAudioClipImportData.Quality =
                    EditorGUILayout.IntField("Quality", currenAudioClipImportData.Quality);
            }
            EditorGUILayout.EndHorizontal();
            GUILayout.Space(25);
            int height = (AudioClipImportManager.ImportRule.AudioClipImportDatas.Count + 1) * 20;

            AudioClipImportManager.AudioClipImportRule.AudioClipImportData rule =
                AudioClipImportManager.ImportRule.GetRule(currentSelectIndex);
            string[] guids = null;
            if (null != rule)
            {
                guids   = AssetDatabase.FindAssets("t:AudioClip", new string[] { rule.AssetPath });
                height += (guids.Length + 1) * 20;
            }

            scrollPosition = GUI.BeginScrollView(new Rect(0, 30, position.width, position.height - 30), scrollPosition,
                                                 new Rect(0, 0, 1250, height));
            EditorGUILayout.BeginHorizontal();
            {
                GUILayout.Label("AssetPath", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("FileFilter", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("Index", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("ForceToMono", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("LoadInBackground", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("Ambisonic", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("PreloadAudioClip", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("Quality", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("AndroidFormat", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("AndroidLoadType", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("iPhoneFormat", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("iPhoneLoadType", EditorStyles.label, GUILayout.MinWidth(100));
                GUILayout.Label("Apply", EditorStyles.label, GUILayout.MinWidth(100));
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.Space();
            style = GUI.skin.textField;
            for (int i = 0; i < AudioClipImportManager.ImportRule.AudioClipImportDatas.Count; i++)
            {
                EditorGUILayout.BeginHorizontal();
                AudioClipImportManager.AudioClipImportRule.AudioClipImportData data =
                    AudioClipImportManager.ImportRule.AudioClipImportDatas[i];

                GUI.color = data.Index == currentSelectIndex ? Color.green : new Color(0.8f, 0.8f, 0.8f, 1);

                if (GUILayout.Button(data.AssetPath, style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button(data.FileFilter, style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button(data.Index.ToString(), style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button(data.IsForceToMono.ToString(), style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button(data.IsLoadInBackground.ToString(), style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button(data.IsAmbisonic.ToString(), style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button(data.IsPreloadAudioClip.ToString(), style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button(data.Quality.ToString(), style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button(data.AndroidCompressionFormat.ToString(), style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button(data.AndroidAudioClipLoadType.ToString(), style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button(data.iPhoneCompressionFormat.ToString(), style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button(data.iPhoneClipLoadType.ToString(), style, GUILayout.MinWidth(100)))
                {
                    currentSelectIndex = data.Index;
                    GetSelectIndexDataInfo(data);
                }
                if (GUILayout.Button("Apply", GUILayout.MinWidth(100)))
                {
                    AudioClipImportManager.ReImportAudioClips(data);
                }
                EditorGUILayout.EndHorizontal();
            }
            if (null != guids)
            {
                int count = 0;
                for (int i = 0; i < guids.Length; i++)
                {
                    string path = AssetDatabase.GUIDToAssetPath(guids[i]);
                    if (string.IsNullOrEmpty(path))
                    {
                        continue;
                    }
                    string dir = path.Remove(path.LastIndexOf('/'));
                    if (!dir.Equals(currenAudioClipImportData.AssetPath))
                    {
                        continue;
                    }
                    string fileName = path.Substring(path.LastIndexOf('/') + 1);
                    if (!currenAudioClipImportData.IsMatch(fileName))
                    {
                        continue;
                    }
                    AudioImporter ai = AssetImporter.GetAtPath(path) as AudioImporter;
                    if (null != ai)
                    {
                        EditorGUILayout.BeginHorizontal();
                        {
                            GUILayout.Label(fileName, EditorStyles.label, GUILayout.MinWidth(120));
                            GUILayout.Label("", EditorStyles.label, GUILayout.MinWidth(100));
                            GUILayout.Label((++count).ToString(), EditorStyles.label, GUILayout.MinWidth(100));
                            GUILayout.Label(ai.forceToMono.ToString(), EditorStyles.label, GUILayout.MinWidth(120));
                            GUILayout.Label(ai.loadInBackground.ToString(), EditorStyles.label,
                                            GUILayout.MinWidth(120));
                            GUILayout.Label(ai.ambisonic.ToString(), EditorStyles.label, GUILayout.MinWidth(100));
                            GUILayout.Label(ai.preloadAudioData.ToString(), EditorStyles.label,
                                            GUILayout.MinWidth(100));
                            AudioImporterSampleSettings settingAndroid = ai.GetOverrideSampleSettings("Android");
                            AudioImporterSampleSettings settingiPhone  = ai.GetOverrideSampleSettings("iOS");
                            GUILayout.Label(settingAndroid.quality.ToString(), EditorStyles.label,
                                            GUILayout.MinWidth(100));
                            GUILayout.Label(settingAndroid.compressionFormat.ToString(), EditorStyles.label,
                                            GUILayout.MinWidth(100));
                            GUILayout.Label(settingAndroid.loadType.ToString(), EditorStyles.label,
                                            GUILayout.MinWidth(100));
                            GUILayout.Label(settingiPhone.compressionFormat.ToString(), EditorStyles.label,
                                            GUILayout.MinWidth(100));
                            GUILayout.Label(settingiPhone.loadType.ToString(), EditorStyles.label,
                                            GUILayout.MinWidth(100));
                            GUILayout.Label("", EditorStyles.label, GUILayout.MinWidth(100));
                        }
                        EditorGUILayout.EndHorizontal();
                    }
                }
            }
            GUI.EndScrollView();
            if (EditorUtility.IsDirty(AudioClipImportManager.ImportRule))
            {
                EditorUtility.SetDirty(AudioClipImportManager.ImportRule);
                AssetDatabase.Refresh();
            }
        }
Exemplo n.º 25
0
      /**************************************************************************************************/
      /*!
       *    \fn      static void SelectedSetCompressionBitrate(int newCompressionBitrate)
       *             Audioデータの一括設定を行う実際の処理(ビットレート)
       *    \param   newCompressionBitrate : ビットレート (例:156000)
       *    \date    2014.12.25(Thu)
       *    \author  Masayoshi.Matsuyama@Donuts
       */
      /**************************************************************************************************/
/*
      static void SelectedSetCompressionBitrate(int newCompressionBitrate) {
        Object[] audioclips = GetSelectedAudioclips();
        Selection.objects = new Object[0];
        foreach (AudioClip audioclip in audioclips) {
          string path = AssetDatabase.GetAssetPath(audioclip);
          AudioImporter audioImporter      = AssetImporter.GetAtPath(path) as AudioImporter;
          audioImporter.compressionBitrate = newCompressionBitrate;
          AssetDatabase.ImportAsset(path);
        }
      }
*/

      /**************************************************************************************************/
      /*!
       *    \fn      static void SelectedSetLoadType(AudioImporterLoadType loadtype)
       *             Audioデータの一括設定を行う実際の処理(LoadType)
       *    \param   loadType : ロードタイプ
       *    \date    2014.12.25(Thu)
       *    \author  Masayoshi.Matsuyama@Donuts
       */
      /**************************************************************************************************/
      static void SelectedSetLoadType(AudioClipLoadType loadtype) {
        Object[] audioclips = GetSelectedAudioclips();
        Selection.objects = new Object[0];
        foreach (AudioClip audioclip in audioclips) {
          string path = AssetDatabase.GetAssetPath(audioclip);
          AudioImporter audioImporter = AssetImporter.GetAtPath(path) as AudioImporter;
          AssetDatabase.ImportAsset(path);
        }
      }
Exemplo n.º 26
0
    /// <summary>
    /// 更改音效设置
    /// </summary>
    /// <param name="importer"></param>
    /// <param name="platform"></param>
    /// <param name="loadType"></param>
    public static void SetAudioSettingExt(this AudioImporter importer, string platform, AudioClipLoadType loadType, AudioCompressionFormat format, float quality = 1)
    {
        AudioImporterSampleSettings settings = importer.GetOverrideSampleSettings(platform);

        settings.loadType          = loadType;
        settings.compressionFormat = format;
        settings.quality           = quality;
        importer.SetOverrideSampleSettings(platform, settings);
    }
        private void OnSampleSettingGUI(BuildTargetGroup platform, AudioImporterInspector.MultiValueStatus status, bool selectionContainsTrackerFile, ref AudioImporterInspector.SampleSettingProperties properties, bool disablePreloadAudioDataOption)
        {
            EditorGUI.showMixedValue = status.multiLoadType && !properties.loadTypeChanged;
            EditorGUI.BeginChangeCheck();
            AudioClipLoadType audioClipLoadType = (AudioClipLoadType)EditorGUILayout.EnumPopup("Load Type", (Enum)properties.settings.loadType, new GUILayoutOption[0]);

            if (EditorGUI.EndChangeCheck())
            {
                properties.settings.loadType = audioClipLoadType;
                properties.loadTypeChanged   = true;
            }
            EditorGUI.BeginDisabledGroup(disablePreloadAudioDataOption);
            if (disablePreloadAudioDataOption)
            {
                EditorGUILayout.Toggle("Preload Audio Data", false, new GUILayoutOption[0]);
            }
            else
            {
                EditorGUILayout.PropertyField(this.m_PreloadAudioData);
            }
            EditorGUI.EndDisabledGroup();
            if (selectionContainsTrackerFile)
            {
                return;
            }
            AudioCompressionFormat[] formatsForPlatform = this.GetFormatsForPlatform(platform);
            EditorGUI.showMixedValue = status.multiCompressionFormat && !properties.compressionFormatChanged;
            EditorGUI.BeginChangeCheck();
            AudioCompressionFormat compressionFormat = (AudioCompressionFormat)EditorGUILayout.IntPopup("Compression Format", (int)properties.settings.compressionFormat, Array.ConvertAll <AudioCompressionFormat, string>(formatsForPlatform, (Converter <AudioCompressionFormat, string>)(value => value.ToString())), Array.ConvertAll <AudioCompressionFormat, int>(formatsForPlatform, (Converter <AudioCompressionFormat, int>)(value => (int)value)), new GUILayoutOption[0]);

            if (EditorGUI.EndChangeCheck())
            {
                properties.settings.compressionFormat = compressionFormat;
                properties.compressionFormatChanged   = true;
            }
            if (this.CompressionFormatHasQuality(properties.settings.compressionFormat))
            {
                EditorGUI.showMixedValue = status.multiQuality && !properties.qualityChanged;
                EditorGUI.BeginChangeCheck();
                int num = EditorGUILayout.IntSlider("Quality", (int)Mathf.Clamp(properties.settings.quality * 100f, 1f, 100f), 1, 100, new GUILayoutOption[0]);
                if (EditorGUI.EndChangeCheck())
                {
                    properties.settings.quality = 0.01f * (float)num;
                    properties.qualityChanged   = true;
                }
            }
            EditorGUI.showMixedValue = status.multiSampleRateSetting && !properties.sampleRateSettingChanged;
            EditorGUI.BeginChangeCheck();
            AudioSampleRateSetting sampleRateSetting = (AudioSampleRateSetting)EditorGUILayout.EnumPopup("Sample Rate Setting", (Enum)properties.settings.sampleRateSetting, new GUILayoutOption[0]);

            if (EditorGUI.EndChangeCheck())
            {
                properties.settings.sampleRateSetting = sampleRateSetting;
                properties.sampleRateSettingChanged   = true;
            }
            if (properties.settings.sampleRateSetting == AudioSampleRateSetting.OverrideSampleRate)
            {
                EditorGUI.showMixedValue = status.multiSampleRateOverride && !properties.sampleRateOverrideChanged;
                EditorGUI.BeginChangeCheck();
                int num = EditorGUILayout.IntPopup("Sample Rate", (int)properties.settings.sampleRateOverride, AudioImporterInspector.Styles.kSampleRateStrings, AudioImporterInspector.Styles.kSampleRateValues, new GUILayoutOption[0]);
                if (EditorGUI.EndChangeCheck())
                {
                    properties.settings.sampleRateOverride = (uint)num;
                    properties.sampleRateOverrideChanged   = true;
                }
            }
            EditorGUI.showMixedValue = false;
        }