Exemplo n.º 1
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();
    }
Exemplo n.º 3
0
    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 SelectedToggleCompressionSettings(AudioImporterFormat newFormat)
 {
     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.format = newFormat;
         AssetDatabase.ImportAsset(path);
     }
 }
 static void SelectedToggleCompressionSettings(AudioImporterFormat newFormat)
 {
     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.format = newFormat;
         AssetDatabase.ImportAsset(path);
     }
 }
Exemplo n.º 6
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]; }
        }
    }
Exemplo n.º 7
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;
        }
    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;
        }
Exemplo n.º 10
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"));
        }
    }
        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);
        }
    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);
        }
    }
Exemplo n.º 13
0
        public static AudioType GetPlatformConversionType(AudioType inType, BuildTargetGroup targetGroup,
                                                          AudioImporterFormat format)
        {
            Assembly   unityEditorAssembly = typeof(AudioImporter).Assembly;
            Type       audioUtilClass      = unityEditorAssembly.GetType("UnityEditor.AudioUtil");
            MethodInfo method = audioUtilClass.GetMethod(
                "GetPlatformConversionType",
                BindingFlags.Static | BindingFlags.Public
                );

            AudioType type = (AudioType)method.Invoke(
                null,
                new object[]
            {
                inType,
                targetGroup,
                format
            }
                );

            return(type);
        }
    void OnGUI()
    {
        m_format = (AudioImporterFormat) EditorGUILayout.EnumPopup("Audio Format", m_format);

        /*m_3dSound = EditorGUILayout.Toggle("3D Sound", m_3dSound, null);

        m_forceToMono = EditorGUILayout.Toggle("Force To Mono", m_forceToMono, null);

        m_loadType = (AudioImporterLoadType)EditorGUILayout.EnumPopup("Load Type", m_loadType);

        m_hardwareDecoding = EditorGUILayout.Toggle("Hardware Decoding", m_hardwareDecoding, null);

        m_gaplessLooping = EditorGUILayout.Toggle("Gapless Looping", m_gaplessLooping, null);*/

        m_bitrate = EditorGUILayout.IntSlider("Compression (kbps)", m_bitrate, 32, 240, null);

        if (GUILayout.Button("Apply"))
        {
            ApplySettingsToSelectedClips();
            this.Close();
        }
    }
Exemplo n.º 15
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];
            }
        }
    }
Exemplo n.º 16
0
    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;
        }
    }
Exemplo n.º 17
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"));
            }
        }
    }
Exemplo n.º 18
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;
        }
Exemplo n.º 19
0
    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();
    }
Exemplo n.º 20
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;
    }
Exemplo n.º 21
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;
        }