private Texture2D AudioWaveform(AudioClip aud, int width, int height, Color color)
    {
        int step = Mathf.CeilToInt((aud.samples * aud.channels) / width);

        float[] samples = new float[aud.samples * aud.channels];
        //workaround to prevent the error in the function getData
        //when Audio Importer loadType is "compressed in memory"

        string path = AssetDatabase.GetAssetPath(aud);

        AudioImporter audioImporter = AssetImporter.GetAtPath(path) as AudioImporter;

        AudioImporterLoadType audioLoadTypeBackup = audioImporter.loadType;

        audioImporter.loadType = AudioImporterLoadType.StreamFromDisc;

        AssetDatabase.ImportAsset(path);



        //getData after the loadType changed

        aud.GetData(samples, 0);



        //restore the loadType (end of workaround)

        audioImporter.loadType = audioLoadTypeBackup;

        AssetDatabase.ImportAsset(path);



        Texture2D img = new Texture2D(width, height, TextureFormat.RGBA32, false);



        Color[] xy = new Color[width * height];

        for (int x = 0; x < width * height; x++)
        {
            xy[x] = new Color(0, 0, 0, 0);
        }
        img.SetPixels(xy);
        int i = 0;

        while (i < width)
        {
            int barHeight = Mathf.CeilToInt(Mathf.Clamp(Mathf.Abs(samples[i * step]) * height, 0, height));
            int add       = samples[i * step] > 0 ? 1 : -1;
            for (int j = 0; j < barHeight; j++)
            {
                img.SetPixel(i, Mathf.FloorToInt(height / 2) - (Mathf.FloorToInt(barHeight / 2) * add) + (j * add), color);
            }
            ++i;
        }
        img.Apply();
        return(img);
    }
示例#2
0
    public override void ReadFromAsset(Object asset)
    {
        if (!(asset is AudioClip))
        {
            Debug.Log("Asset isn't an AudioClip. Can't read from asset");
            return;
        }

        AudioClip clip = asset as AudioClip;

        name = clip.name;

        AudioImporter audioImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(clip)) as AudioImporter;

        if (audioImporter == null)
        {
            Debug.Log("Could not get audio importer for asset at path: " + AssetDatabase.GetAssetPath(clip));
            return;
        }

        guid = AssetDatabase.AssetPathToGUID(audioImporter.assetPath);

        compressionBitrate = audioImporter.compressionBitrate;
        forceToMono        = audioImporter.forceToMono;
        format             = audioImporter.format;
        hardware           = audioImporter.hardware;
        loadType           = audioImporter.loadType;
        loopable           = audioImporter.loopable;
        threeD             = audioImporter.threeD;
    }
    private void ShowBulkOperations()
    {
        GUILayout.BeginArea(new Rect(0, 616, 895, 200));
        GUILayout.BeginHorizontal(EditorStyles.objectFieldThumb);
        GUI.contentColor = Color.yellow;
        GUILayout.Label("Bulk Settings: Click Copy buttons to copy setting to all selected.");         //  the setting above it to all selected.
        GUILayout.Space(26);

        GUI.contentColor = Color.green;
        if (GUILayout.Button(new GUIContent("Copy", "Copy Compression bitrate above to all selected"), EditorStyles.toolbarButton, GUILayout.Width(45)))
        {
            CopyBitrateToSelected();
        }
        GUILayout.Space(6);
        if (GUILayout.Button(new GUIContent("Copy", "Copy 3D setting above to all selected"), EditorStyles.toolbarButton, GUILayout.Width(45)))
        {
            Copy3DToSelected();
        }

        GUILayout.Space(8);
        if (GUILayout.Button(new GUIContent("Copy", "Copy Force Mono setting above to all selected"), EditorStyles.toolbarButton, GUILayout.Width(45)))
        {
            CopyForceMonoToSelected();
        }

        GUILayout.Space(26);
        if (GUILayout.Button(new GUIContent("Copy", "Copy Audio Format setting above to all selected"), EditorStyles.toolbarButton, GUILayout.Width(45)))
        {
            CopyFormatToSelected();
        }

        GUILayout.Space(101);
        if (GUILayout.Button(new GUIContent("Copy", "Copy Load Type setting above to all selected"), EditorStyles.toolbarButton, GUILayout.Width(45)))
        {
            CopyLoadTypeToSelected();
        }

        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        GUI.contentColor = Color.white;

        GUILayout.BeginHorizontal(EditorStyles.miniButtonLeft);
        GUILayout.Space(246);

        bulkBitrate = EditorGUILayout.IntSlider("", bulkBitrate / 1000, 32, 256, GUILayout.Width(202)) * 1000;
        GUILayout.Space(13);
        bulk3D = GUILayout.Toggle(bulk3D, "");
        GUILayout.Space(36);
        bulkForceMono = GUILayout.Toggle(bulkForceMono, "");
        GUILayout.Space(35);
        bulkFormat = (AudioImporterFormat)EditorGUILayout.EnumPopup(bulkFormat, GUILayout.Width(136));
        GUILayout.Space(6);
        bulkLoadType = (AudioImporterLoadType)EditorGUILayout.EnumPopup(bulkLoadType, GUILayout.Width(140));

        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        GUILayout.EndArea();
    }
    void SetPsaiDefaultValues()
    {
        _3dSound     = PSAI_DEFAULT_3D;
        _forceToMono = PSAI_DEFAULT_MONO;
        _format      = PSAI_DEFAULT_FORMAT;
        _loadType    = PSAI_DEFAULT_LOADTYPE;

        _createWrapperPrefabs = PSAI_DEFAULT_CREATE_WRAPPERS;
    }
 static void SelectedToggleDecompressOnLoadSettings(AudioImporterLoadType 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;
         audioImporter.loadType = loadType;
         AssetDatabase.ImportAsset(path);
     }
 }
 static void SelectedToggleDecompressOnLoadSettings(AudioImporterLoadType enabled)
 {
     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.loadType = enabled;
         AssetDatabase.ImportAsset(path);
     }
 }
示例#7
0
 /// <summary>
 /// Changes the setting of selected audio clip files.
 /// </summary>
 /// <param name='is3D'>
 /// Is3 d.
 /// </param>
 /// <param name='loadType'>
 /// Load type.
 /// </param>
 /// <param name='cb'>
 /// Compression Bitrate
 /// </param>
 private static void ChangeSettingAudio(bool is3D, AudioImporterLoadType loadType, int cb)
 {
     Object[] clips = GetSelectedSounds();
     foreach (AudioClip clip in clips)  {
         string path = AssetDatabase.GetAssetPath(clip);
         AudioImporter audioImporter = AssetImporter.GetAtPath(path) as AudioImporter;
         audioImporter.threeD = is3D;
         audioImporter.format = AudioImporterFormat.Compressed;
         audioImporter.loadType = loadType;
         audioImporter.compressionBitrate = cb;
         AssetDatabase.ImportAsset(path);
     }
 }
示例#8
0
 /// <summary>
 /// Changes the setting of selected audio clip files.
 /// </summary>
 /// <param name='is3D'>
 /// Is3 d.
 /// </param>
 /// <param name='loadType'>
 /// Load type.
 /// </param>
 /// <param name='cb'>
 /// Compression Bitrate
 /// </param>
 private static void ChangeSettingAudio(bool is3D, AudioImporterLoadType loadType, int cb)
 {
     Object[] clips = GetSelectedSounds();
     foreach (AudioClip clip in clips)
     {
         string        path          = AssetDatabase.GetAssetPath(clip);
         AudioImporter audioImporter = AssetImporter.GetAtPath(path) as AudioImporter;
         audioImporter.threeD             = is3D;
         audioImporter.format             = AudioImporterFormat.Compressed;
         audioImporter.loadType           = loadType;
         audioImporter.compressionBitrate = cb;
         AssetDatabase.ImportAsset(path);
     }
 }
示例#9
0
    public override void ApplyCopiedValues(string[] properties, object[] values)
    {
        for(int i=0; i<properties.Length; i++) {
            string property = properties[i];

            if(property == "compressionBitrate") { compressionBitrate = (int) values[i]; }
            if(property == "forceToMono") { forceToMono = (bool) values[i]; }
            if(property == "format") { format = (AudioImporterFormat) values[i]; }
            if(property == "hardware") { hardware = (bool) values[i]; }
            if(property == "loadType") { loadType = (AudioImporterLoadType) values[i]; }
            if(property == "loopable") { loopable = (bool) values[i]; };
            if(property == "threeD") { threeD = (bool) values[i]; }
        }
    }
    public void Init()
    {
        this.title = "Audio Importer";

        Object[] audioclips = GetSelectedAudioclips();
        if (audioclips.Length > 0)
        {
            string path = AssetDatabase.GetAssetPath(audioclips[0]);
            AudioImporter audioImporter = AssetImporter.GetAtPath(path) as AudioImporter;

            m_format = audioImporter.format;
            m_bitrate = audioImporter.compressionBitrate / 1000;
            m_loadType = audioImporter.loadType;
            m_3dSound = audioImporter.threeD;
            m_forceToMono = audioImporter.forceToMono;
            m_hardwareDecoding = audioImporter.hardware;
            m_gaplessLooping = audioImporter.loopable;
        }
    }
        public AudioInfo(string fullPath, string name, bool is3d, int compressionBitrate, bool forceMono, AudioImporterFormat format, AudioImporterLoadType loadType)
        {
            _origIs3d = is3d;
            _origCompressionBitrate = compressionBitrate;
            _origForceMono          = forceMono;
            _origFormat             = format;
            _origLoadType           = loadType;

            _fullPath           = fullPath;
            _name               = name;
            _is3d               = is3d;
            _compressionBitrate = compressionBitrate;
            _forceMono          = forceMono;
            _format             = format;
            _loadType           = loadType;
            _isSelected         = false;
            _hasChanged         = false;
            _lastUpdated        = DateTime.MinValue.Ticks;
        }
示例#12
0
        public AudioInformation(string fullPath, string name, bool is3D, int compressionBitrate, bool forceMono, AudioImporterFormat format, AudioImporterLoadType loadType)
        {
            OrigIs3D = is3D;
            OrigCompressionBitrate = compressionBitrate;
            OrigForceMono          = forceMono;
            OrigFormat             = format;
            OrigLoadType           = loadType;

            FullPath           = fullPath;
            Name               = name;
            Is3D               = is3D;
            CompressionBitrate = compressionBitrate;
            ForceMono          = forceMono;
            Format             = format;
            LoadType           = loadType;
            IsSelected         = false;
            HasChanged         = false;
            LastUpdated        = DateTime.MinValue.Ticks;
        }
示例#13
0
    public AudioAsset(StreamReader reader)
    {
        string line = string.Empty;
        while((line = reader.ReadLine()) != null) {
            if(line.Contains(VerySimpleXml.EndNode(nodeName)))
                break;

            //Name
            if(line.Contains(VerySimpleXml.StartNode(nameNodeName)))
                name = VerySimpleXml.NodeValue(line, nameNodeName);

            //Path
            if(line.Contains(VerySimpleXml.StartNode(pathNodeName))) {
                guid = AssetDatabase.AssetPathToGUID(VerySimpleXml.NodeValue(line, pathNodeName));
            }

            if(line.Contains(VerySimpleXml.StartNode(guidNodeName)))
                guid = VerySimpleXml.NodeValue(line, guidNodeName);

            //IMPORT SETTINGS
            if(line.Contains(VerySimpleXml.StartNode("compressionBitrate")))
                compressionBitrate = int.Parse(VerySimpleXml.NodeValue(line, "compressionBitrate"));

            if(line.Contains(VerySimpleXml.StartNode("forceToMono")))
                forceToMono = bool.Parse(VerySimpleXml.NodeValue(line, "forceToMono"));

            if(line.Contains(VerySimpleXml.StartNode("format")))
                format = (AudioImporterFormat) System.Enum.Parse(typeof(AudioImporterFormat), VerySimpleXml.NodeValue(line, "format"));

            if(line.Contains(VerySimpleXml.StartNode("hardware")))
                hardware = bool.Parse(VerySimpleXml.NodeValue(line, "hardware"));

            if(line.Contains(VerySimpleXml.StartNode("loadType")))
                loadType = (AudioImporterLoadType) System.Enum.Parse(typeof(AudioImporterLoadType), VerySimpleXml.NodeValue(line, "loadType"));

            if(line.Contains(VerySimpleXml.StartNode("loopable")))
                loopable = bool.Parse(VerySimpleXml.NodeValue(line, "loopable"));

            if(line.Contains(VerySimpleXml.StartNode("threeD")))
                threeD = bool.Parse(VerySimpleXml.NodeValue(line, "threeD"));
        }
    }
    static void SetAudioImportSettings(bool enableHardwareDecoding = true, AudioImporterFormat newFormat            = AudioImporterFormat.Native,
                                       int newCompressionBitrate   = 90, AudioImporterLoadType decompressOnLoadType = AudioImporterLoadType.StreamFromDisc,
                                       bool is3D = false, bool forceToMono = false
                                       )
    {
        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.hardware           = enableHardwareDecoding;
            audioImporter.format             = newFormat;
            audioImporter.compressionBitrate = newCompressionBitrate;
            audioImporter.loadType           = decompressOnLoadType;
            audioImporter.threeD             = is3D;
            audioImporter.forceToMono        = forceToMono;

            AssetDatabase.ImportAsset(path);
        }
    }
        public override void DrawEditor()
        {
            format      = (AudioImporterFormat)(EditorGUILayout.Popup("Audio Format", (int)format + 1, new[] { "Native", "Compressed" }) - 1);
            threeD      = EditorGUILayout.Toggle("3D Sound", threeD);
            forceToMono = EditorGUILayout.Toggle("Force to mono", forceToMono);

            if (format == AudioImporterFormat.Compressed)
            {
                loadType = (AudioImporterLoadType)EditorGUILayout.Popup("Load type", (int)loadType, new[] { "Decompress on load", "Compressed in memory", "Stream from disc" });
            }
            else
            {
                int curType = Mathf.Clamp((int)loadType - 1, 0, 1);
                loadType = (AudioImporterLoadType)(EditorGUILayout.Popup("Load type", curType, new[] { "Load into memory", "Stream from disc" }) + 1);
            }

            hardware = EditorGUILayout.Toggle("Hardware decoding", hardware);
            loopable = EditorGUILayout.Toggle("Gapless looping", loopable);

            compressionBitrate = EditorGUILayout.IntSlider("Compression (kbps)", compressionBitrate, 45, 500);
        }
示例#16
0
    public override void ApplyCopiedValues(string[] properties, object[] values)
    {
        for (int i = 0; i < properties.Length; i++)
        {
            string property = properties[i];

            if (property == "compressionBitrate")
            {
                compressionBitrate = (int)values[i];
            }
            if (property == "forceToMono")
            {
                forceToMono = (bool)values[i];
            }
            if (property == "format")
            {
                format = (AudioImporterFormat)values[i];
            }
            if (property == "hardware")
            {
                hardware = (bool)values[i];
            }
            if (property == "loadType")
            {
                loadType = (AudioImporterLoadType)values[i];
            }
            if (property == "loopable")
            {
                loopable = (bool)values[i];
            }
            ;
            if (property == "threeD")
            {
                threeD = (bool)values[i];
            }
        }
    }
    void OnGUI()
    {
        if (_scanningInitiated)
        {
            GUILayout.Label("PLEASE WAIT! Scanning selection...", EditorStyles.boldLabel);
            return;
        }

        GUILayout.Label("psai Multi Audio Object Editor", EditorStyles.boldLabel);

        _usePsaiDefaults = EditorGUILayout.Toggle("use psai settings", _usePsaiDefaults);
        if (_usePsaiDefaults)
        {
            GUI.enabled = false;
            SetPsaiDefaultValues();
        }

        _format      = (AudioImporterFormat)EditorGUILayout.EnumPopup("Audio Format", _format);
        _3dSound     = EditorGUILayout.Toggle("3D Sound", _3dSound);
        _forceToMono = EditorGUILayout.Toggle("Force to mono", _forceToMono);
        _loadType    = (AudioImporterLoadType)EditorGUILayout.EnumPopup("Load type", _loadType);

        _createWrapperPrefabs = EditorGUILayout.Toggle("use Wrappers", _createWrapperPrefabs);

        GUI.enabled = true;

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.PrefixLabel("Compression (kbps)");
        _compression = EditorGUILayout.IntSlider(_compression, COMPRESSION_KBPS_MIN, COMPRESSION_KBPS_MAX);
        EditorGUILayout.EndHorizontal();

        if (GUILayout.Button("Apply", GUILayout.Width(position.width / 2), GUILayout.Height(40)))
        {
            _applyClicked = true;
        }
    }
    static void SelectedToggleDecompressOnLoadSettings(AudioImporterLoadType enabled)
    {
        Object[] audioclips = GetSelectedAudioclips();

        if(deselectAfterCompletion) Selection.objects = new Object[0];

        foreach (AudioClip audioclip in audioclips) {

            string path = AssetDatabase.GetAssetPath(audioclip);

            AudioImporter audioImporter = AssetImporter.GetAtPath(path) as AudioImporter;

            if(audioImporter.loadType != enabled) audioImporter.loadType = enabled;
            {
                AssetDatabase.ImportAsset(path);
            }
        }
    }
示例#19
0
    public AudioAsset(StreamReader reader)
    {
        string line = string.Empty;

        while ((line = reader.ReadLine()) != null)
        {
            if (line.Contains(VerySimpleXml.EndNode(nodeName)))
            {
                break;
            }

            //Name
            if (line.Contains(VerySimpleXml.StartNode(nameNodeName)))
            {
                name = VerySimpleXml.NodeValue(line, nameNodeName);
            }

            //Path
            if (line.Contains(VerySimpleXml.StartNode(pathNodeName)))
            {
                guid = AssetDatabase.AssetPathToGUID(VerySimpleXml.NodeValue(line, pathNodeName));
            }

            if (line.Contains(VerySimpleXml.StartNode(guidNodeName)))
            {
                guid = VerySimpleXml.NodeValue(line, guidNodeName);
            }

            //IMPORT SETTINGS
            if (line.Contains(VerySimpleXml.StartNode("compressionBitrate")))
            {
                compressionBitrate = int.Parse(VerySimpleXml.NodeValue(line, "compressionBitrate"));
            }

            if (line.Contains(VerySimpleXml.StartNode("forceToMono")))
            {
                forceToMono = bool.Parse(VerySimpleXml.NodeValue(line, "forceToMono"));
            }

            if (line.Contains(VerySimpleXml.StartNode("format")))
            {
                format = (AudioImporterFormat)System.Enum.Parse(typeof(AudioImporterFormat), VerySimpleXml.NodeValue(line, "format"));
            }

            if (line.Contains(VerySimpleXml.StartNode("hardware")))
            {
                hardware = bool.Parse(VerySimpleXml.NodeValue(line, "hardware"));
            }

            if (line.Contains(VerySimpleXml.StartNode("loadType")))
            {
                loadType = (AudioImporterLoadType)System.Enum.Parse(typeof(AudioImporterLoadType), VerySimpleXml.NodeValue(line, "loadType"));
            }

            if (line.Contains(VerySimpleXml.StartNode("loopable")))
            {
                loopable = bool.Parse(VerySimpleXml.NodeValue(line, "loopable"));
            }

            if (line.Contains(VerySimpleXml.StartNode("threeD")))
            {
                threeD = bool.Parse(VerySimpleXml.NodeValue(line, "threeD"));
            }
        }
    }
示例#20
0
        public AudioInfo(string fullPath, string name, bool is3d, int compressionBitrate, bool forceMono, AudioImporterFormat format, AudioImporterLoadType loadType)
        {
            _origIs3d = is3d;
            _origCompressionBitrate = compressionBitrate;
            _origForceMono = forceMono;
            _origFormat = format;
            _origLoadType = loadType;

            _fullPath = fullPath;
            _name = name;
            _is3d = is3d;
            _compressionBitrate = compressionBitrate;
            _forceMono = forceMono;
            _format = format;
            _loadType = loadType;
            _isSelected = false;
            _hasChanged = false;
            _lastUpdated = DateTime.MinValue.Ticks;
        }
示例#21
0
    public static Texture2D CreatePreview(AudioClip aud, int width, int height, Color color, PreviewType previewType)
    {
        int step = Mathf.CeilToInt((aud.samples * aud.channels) / width);

        float[] samples = new float[aud.samples * aud.channels];


        //workaround to prevent the error in the function getData when Audio Importer loadType is "compressed in memory"
        string                path                = AssetDatabase.GetAssetPath(aud);
        AudioImporter         audioImporter       = AssetImporter.GetAtPath(path) as AudioImporter;
        AudioImporterLoadType audioLoadTypeBackup = audioImporter.loadType;

        audioImporter.loadType = AudioImporterLoadType.StreamFromDisc;
        AssetDatabase.ImportAsset(path);

        //getData after the loadType changed
        aud.GetData(samples, 0);

        //restore the loadType
        audioImporter.loadType = audioLoadTypeBackup;
        AssetDatabase.ImportAsset(path);


        Texture2D img = new Texture2D(width, height, TextureFormat.RGBA32, false);

        if (previewType == PreviewType.wave)
        {
            Color[] xy = new Color[width * height];
            for (int x = 0; x < width * height; x++)
            {
                xy[x] = new Color(0, 0, 0, 0);
                //xy[x] = new Color(0, 1, 0, 0.2f);
            }

            img.SetPixels(xy);

            int i = 0;
            while (i < width)
            {
                int barHeight = Mathf.CeilToInt(Mathf.Clamp(Mathf.Abs(samples[i * step]) * height, 0, height));
                int add       = samples[i * step] > 0 ? 1 : -1;
                for (int j = 0; j < barHeight; j++)
                {
                    img.SetPixel(i, Mathf.FloorToInt(height / 2) - (Mathf.FloorToInt(barHeight / 2) * add) + (j * add), color);
                }
                ++i;
            }

            img.Apply();
        }
        else if (previewType == PreviewType.bar)
        {
            img = new Texture2D(width, 1, TextureFormat.RGBA32, false);
            int i = 0;
            while (i < width)
            {
                //int barHeight = Mathf.CeilToInt(Mathf.Clamp(Mathf.Abs(samples[i * step]) * height, 0, height));
                //int add = samples[i * step] > 0 ? 1 : -1;
                float colorIntensity = Mathf.Clamp(Mathf.Abs(samples[i * step]) * 10f, 0, 1);
                Color colorReturn    = new Color(color.r / colorIntensity, color.g / colorIntensity, color.b / colorIntensity, colorIntensity / 4f);
                img.SetPixel(i, 0, colorReturn);
                ++i;
            }
            img.Apply();
        }
        else if (previewType == PreviewType.both)
        {
            /*
             * Color[] xy = new Color[width * height];
             * for (int x = 0; x < width * height; x++)
             * {
             *  xy[x] = new Color(1, 0, 0, 1);
             *  //xy[x] = new Color(0, 1, 0, 0.2f);
             * }
             * img.SetPixels(xy);
             */
            int i = 0;
            while (i < width)
            {
                int barHeight = Mathf.CeilToInt(Mathf.Clamp(Mathf.Abs(samples[i * step]) * height, 0, height));
                int add       = samples[i * step] > 0 ? 1 : -1;

                float colorIntensity = Mathf.Clamp(Mathf.Abs(samples[i * step]) * 10f, 0, 1);

                Color colorReturn = new Color(color.r / colorIntensity, color.g / colorIntensity, color.b / colorIntensity, colorIntensity / 6f);


                for (int j = 0; j < height; j++)
                {
                    img.SetPixel(i, j, colorReturn);
                }

                for (int j = 0; j < barHeight; j++)
                {
                    img.SetPixel(i, Mathf.FloorToInt(height / 2) - (Mathf.FloorToInt(barHeight / 2) * add) + (j * add), color);
                }
                ++i;
            }

            img.Apply();
        }
        return(img);
    }
        public AudioInformation(string fullPath, string name, bool is3D, int compressionBitrate, bool forceMono, AudioImporterFormat format, AudioImporterLoadType loadType)
        {
            OrigIs3D = is3D;
            OrigCompressionBitrate = compressionBitrate;
            OrigForceMono = forceMono;
            OrigFormat = format;
            OrigLoadType = loadType;

            FullPath = fullPath;
            Name = name;
            Is3D = is3D;
            CompressionBitrate = compressionBitrate;
            ForceMono = forceMono;
            Format = format;
            LoadType = loadType;
            IsSelected = false;
            HasChanged = false;
            LastUpdated = DateTime.MinValue.Ticks;
        }
    private void ShowBulkOperations()
    {
        GUILayout.BeginArea(new Rect(0, 616, 895, 200));
        GUILayout.BeginHorizontal(EditorStyles.objectFieldThumb);
        GUI.contentColor = DTGUIHelper.BrightButtonColor;
        GUILayout.Label("Bulk Settings: Click Copy buttons to copy setting to all selected."); //  the setting above it to all selected.
        GUILayout.Space(26);

        GUI.contentColor = DTGUIHelper.BrightButtonColor;
        if (GUILayout.Button(new GUIContent("Copy", "Copy Compression bitrate above to all selected"), EditorStyles.toolbarButton, GUILayout.Width(45))) {
            CopyBitrateToSelected();
        }
        GUILayout.Space(6);
        if (GUILayout.Button(new GUIContent("Copy", "Copy 3D setting above to all selected"), EditorStyles.toolbarButton, GUILayout.Width(45))) {
            Copy3DToSelected();
        }

        GUILayout.Space(8);
        if (GUILayout.Button(new GUIContent("Copy", "Copy Force Mono setting above to all selected"), EditorStyles.toolbarButton, GUILayout.Width(45))) {
            CopyForceMonoToSelected();
        }

        GUILayout.Space(26);
        if (GUILayout.Button(new GUIContent("Copy", "Copy Audio Format setting above to all selected"), EditorStyles.toolbarButton, GUILayout.Width(45))) {
            CopyFormatToSelected();
        }

        GUILayout.Space(101);
        if (GUILayout.Button(new GUIContent("Copy", "Copy Load Type setting above to all selected"), EditorStyles.toolbarButton, GUILayout.Width(45))) {
            CopyLoadTypeToSelected();
        }

        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        GUI.contentColor = Color.white;

        GUILayout.BeginHorizontal(DTGUIHelper.CornerGUIStyle);
        GUILayout.Space(246);

        _bulkBitrate = EditorGUILayout.IntSlider("", _bulkBitrate / 1000, 32, 256, GUILayout.Width(202)) * 1000;
        GUILayout.Space(13);
        _bulk3D = GUILayout.Toggle(_bulk3D, "");
        GUILayout.Space(36);
        _bulkForceMono = GUILayout.Toggle(_bulkForceMono, "");
        GUILayout.Space(35);

        _bulkFormat = (AudioImporterFormat)EditorGUILayout.EnumPopup(_bulkFormat, GUILayout.Width(136));

        GUILayout.Space(6);

        _bulkLoadType = (AudioImporterLoadType)EditorGUILayout.EnumPopup(_bulkLoadType, GUILayout.Width(140));

        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        GUILayout.EndArea();
    }
示例#24
0
    public override void ReadFromAsset(Object asset)
    {
        if(!(asset is AudioClip)) {
            Debug.Log("Asset isn't an AudioClip. Can't read from asset");
            return;
        }

        AudioClip clip = asset as AudioClip;

        name = clip.name;

        AudioImporter audioImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(clip)) as AudioImporter;
        if(audioImporter == null) {
            Debug.Log("Could not get audio importer for asset at path: " + AssetDatabase.GetAssetPath(clip));
            return;
        }

        guid = AssetDatabase.AssetPathToGUID(audioImporter.assetPath);

        compressionBitrate = audioImporter.compressionBitrate;
        forceToMono = audioImporter.forceToMono;
        format = audioImporter.format;
        hardware = audioImporter.hardware;
        loadType = audioImporter.loadType;
        loopable = audioImporter.loopable;
        threeD = audioImporter.threeD;
    }