// Use this for initialization
 void Start()
 {
     if (settings == null)
     {
         settings = ReverbSettings.Get();
     }
 }
Example #2
0
    public static ReverbSettings Create(ReverbSettings src)
    {
        if (src != null && src.PRESETS != null) {
            ReverbSettings reverbSettings = ScriptableObject.CreateInstance(typeof(ReverbSettings)) as ReverbSettings;
            int nbPresets = src.PRESETS.Length;
            GlobalReverbZone globalReverb = GameObject.FindObjectOfType(typeof(GlobalReverbZone)) as GlobalReverbZone;
            GameObject obj = null;

            reverbSettings.SelectedPreset = src.SelectedPreset;
            reverbSettings.PRESETS = new ReverbSettings.FmodReverbPreset[nbPresets];
            for (int i = 0; i < nbPresets; i++) {
                reverbSettings.PRESETS[i] = new FmodReverbPreset();
                reverbSettings.PRESETS[i].Name = src.PRESETS[i].Name;
                reverbSettings.PRESETS[i].Properties = src.PRESETS[i].Properties;
            }
            if (globalReverb == null) {
                obj = GameObject.Instantiate(Resources.Load("GlobalReverbZone")) as GameObject;

                globalReverb = obj.GetComponent<GlobalReverbZone>();
            }
            if (globalReverb != null) {
                globalReverb.settings = reverbSettings;
            }
            return (reverbSettings);
        } else {
            return (Create ());
        }
    }
Example #3
0
    public static ReverbSettings SaveSettings(ReverbSettings toSave)
    {
        if (toSave != null)
        {
            ReverbSettings   newSettings  = ReverbSettings.Create(toSave);
            GlobalReverbZone globalReverb = GameObject.FindObjectOfType(typeof(GlobalReverbZone)) as GlobalReverbZone;

            newSettings.beforeSerializePresets();
#if UNITY_EDITOR
            string settingsAssetPath = ReverbSettings.GetSettingsAssetPath();
            if (AssetDatabase.Contains(toSave) == true)
            {
                AssetDatabase.DeleteAsset(settingsAssetPath);
            }
            AssetDatabase.CreateAsset(newSettings, settingsAssetPath);
            AssetDatabase.SaveAssets();

            if (globalReverb != null)
            {
                newSettings.afterDeserializePresets();
                globalReverb.settings  = newSettings;
                LOADED_REVERB_SETTINGS = globalReverb.settings;
                if (EditorApplication.isPlaying || EditorApplication.isPaused)
                {
                    FmodEventSystem.GetReverbManager().UpdateGlobalReverb();
                }
            }
#endif
        }
        else
        {
            Debug.LogError("FMOD_Unity: ReverbSettings: Null reverb settings");
        }
        return(LOADED_REVERB_SETTINGS);
    }
Example #4
0
    public static ReverbSettings Create(ReverbSettings src)
    {
        if (src != null && src.PRESETS != null)
        {
            ReverbSettings   reverbSettings = ScriptableObject.CreateInstance(typeof(ReverbSettings)) as ReverbSettings;
            int              nbPresets      = src.PRESETS.Length;
            GlobalReverbZone globalReverb   = GameObject.FindObjectOfType(typeof(GlobalReverbZone)) as GlobalReverbZone;
            GameObject       obj            = null;

            reverbSettings.SelectedPreset = src.SelectedPreset;
            reverbSettings.PRESETS        = new ReverbSettings.FmodReverbPreset[nbPresets];
            for (int i = 0; i < nbPresets; i++)
            {
                reverbSettings.PRESETS[i]            = new FmodReverbPreset();
                reverbSettings.PRESETS[i].Name       = src.PRESETS[i].Name;
                reverbSettings.PRESETS[i].Properties = src.PRESETS[i].Properties;
            }
            if (globalReverb == null)
            {
                obj = GameObject.Instantiate(Resources.Load("GlobalReverbZone")) as GameObject;

                globalReverb = obj.GetComponent <GlobalReverbZone>();
            }
            if (globalReverb != null)
            {
                globalReverb.settings = reverbSettings;
            }
            return(reverbSettings);
        }
        else
        {
            return(Create());
        }
    }
Example #5
0
            internal static unsafe void Invoke(IntPtr obj, ReverbSettings NewReverbSettings)
            {
                long *p = stackalloc long[] { 0L, 0L, 0L, 0L, 0L };
                byte *b = (byte *)p;

                *((ReverbSettings *)(b + 0)) = NewReverbSettings;
                Main.GetProcessEvent(obj, SetReverbSettings_ptr, new IntPtr(p));;
            }
        }
Example #6
0
 public static ReverbSettings Get()
 {
     LoadSettings();
     if (LOADED_REVERB_SETTINGS == null)
     {
         LOADED_REVERB_SETTINGS = Create();
         ReverbSettings.SaveSettings(LOADED_REVERB_SETTINGS);
     }
     return(LOADED_REVERB_SETTINGS);
 }
Example #7
0
    public void UpdateGlobalReverb()
    {
        if (m_currentZone == m_globalReverbZone && m_globalReverbZone != null && m_globalReverb != null)
        {
            FmodEventSystemHandle           handle = new FmodEventSystemHandle();
            ReverbSettings.FmodReverbPreset globalReverbSetting = ReverbSettings.Get().CurPreset;

            m_globalReverb = m_globalReverbZone.GetReverb();
            m_globalReverb.Initialize(globalReverbSetting.Name, globalReverbSetting.Properties);
            m_curProperties = m_globalReverb.getProperties();
            m_endProperties = m_curProperties;
            handle.getEventSystem().setReverbImmediate(m_curProperties);
            handle.Dispose();
        }
    }
    public void OnGUI()
    {
        if (m_settings == null)
        {
            m_settings = ReverbSettings.Get();
            if (m_settings == null)
            {
                return;
            }
        }
        string[] presetsName = new string[m_settings.PRESETS.Length];

        for (int i = 0; i < m_settings.PRESETS.Length; i++)
        {
            presetsName[i] = m_settings.PRESETS[i].Name;
        }
        this.title = "Global Reverb settings";
        m_settings.SelectedPreset = EditorGUILayout.Popup("Reverb Preset", m_settings.SelectedPreset, presetsName);


        GUI.enabled = (m_settings.CurPreset.Name == "User");
        m_settings.CurPreset.Properties.Room             = 100 * EditorGUILayout.IntSlider("Master level", (int)((float)m_settings.CurPreset.Properties.Room / 100), -100, 0);
        m_settings.CurPreset.Properties.DecayTime        = ((float)EditorGUILayout.IntSlider("Decay Time", (int)(m_settings.CurPreset.Properties.DecayTime * 1000), 100, 20000)) / 1000.0F;
        m_settings.CurPreset.Properties.DecayHFRatio     = EditorGUILayout.Slider("HF Decay Ratio", m_settings.CurPreset.Properties.DecayHFRatio, 0.1f, 2);
        m_settings.CurPreset.Properties.ReflectionsDelay = (float)EditorGUILayout.IntSlider("Pre Delay", (int)(m_settings.CurPreset.Properties.ReflectionsDelay * 1000), 0, 300) / 1000;
        m_settings.CurPreset.Properties.ReverbDelay      = (float)EditorGUILayout.IntSlider("Late Delay", (int)(m_settings.CurPreset.Properties.ReverbDelay * 1000), 0, 100) / 1000;
        m_settings.CurPreset.Properties.Reflections      = (int)(100 * EditorGUILayout.Slider("Early Reflections", ((float)m_settings.CurPreset.Properties.Reflections / 100), -100, 10));
        m_settings.CurPreset.Properties.Reverb           = (int)(100 * EditorGUILayout.Slider("Late Reflections", ((float)m_settings.CurPreset.Properties.Reverb / 100), -100, 20));
        m_settings.CurPreset.Properties.Diffusion        = EditorGUILayout.IntSlider("Diffusion", (int)m_settings.CurPreset.Properties.Diffusion, 0, 100);
        m_settings.CurPreset.Properties.Density          = EditorGUILayout.IntSlider("Density", (int)m_settings.CurPreset.Properties.Density, 0, 100);
        m_settings.CurPreset.Properties.RoomHF           = (int)(100 * EditorGUILayout.Slider("HF Gain", ((float)m_settings.CurPreset.Properties.RoomHF / 100), -100, 0));
        m_settings.CurPreset.Properties.RoomLF           = (int)(100 * EditorGUILayout.Slider("LF Gain", ((float)m_settings.CurPreset.Properties.RoomLF / 100), -100, 0));
        m_settings.CurPreset.Properties.HFReference      = EditorGUILayout.IntSlider("HF Crossover", (int)m_settings.CurPreset.Properties.HFReference, 20, 20000);
        m_settings.CurPreset.Properties.LFReference      = EditorGUILayout.IntSlider("LF Crossover", (int)m_settings.CurPreset.Properties.LFReference, 20, 1000);

        if (GUI.enabled && GUI.changed)
        {
        }
        GUI.enabled = true;
        if (GUILayout.Button("Save Settings"))
        {
            m_settings = ReverbSettings.SaveSettings(m_settings);
        }
    }
Example #9
0
    private static void LoadSettings()
    {
        GlobalReverbZone globalReverb = GameObject.FindObjectOfType(typeof(GlobalReverbZone)) as GlobalReverbZone;

        if (LOADED_REVERB_SETTINGS == null)
        {
#if UNITY_EDITOR
            UnityEngine.Object[] tmp = AssetDatabase.LoadAllAssetsAtPath(ReverbSettings.GetSettingsAssetPath());

            if (tmp.Length > 0 && tmp[0] != null)
            {
                LOADED_REVERB_SETTINGS = tmp[0] as ReverbSettings;
                if (LOADED_REVERB_SETTINGS != null)
                {
                    LOADED_REVERB_SETTINGS.afterDeserializePresets();

                    if (globalReverb == null)
                    {
                        GameObject obj = GameObject.Instantiate(Resources.Load("GlobalReverbZone")) as GameObject;
                        globalReverb = obj.GetComponent <GlobalReverbZone>();
                    }
                    if (globalReverb != null)
                    {
                        globalReverb.settings = LOADED_REVERB_SETTINGS;
                    }
                }
            }
#endif
            if (globalReverb != null && LOADED_REVERB_SETTINGS == null)
            {
                LOADED_REVERB_SETTINGS = globalReverb.settings;
                if (LOADED_REVERB_SETTINGS != null)
                {
                    LOADED_REVERB_SETTINGS.afterDeserializePresets();
                }
            }
        }
    }
    public void OnGUI()
    {
        if (m_settings == null) {
            m_settings = ReverbSettings.Get();
            if (m_settings == null)
                return ;
        }
        string[] presetsName = new string[m_settings.PRESETS.Length];

        for (int i = 0; i < m_settings.PRESETS.Length; i++) {
            presetsName[i] = m_settings.PRESETS[i].Name;
        }
        this.title = "Global Reverb settings";
        m_settings.SelectedPreset = EditorGUILayout.Popup("Reverb Preset", m_settings.SelectedPreset, presetsName);

        GUI.enabled = (m_settings.CurPreset.Name == "User");
        m_settings.CurPreset.Properties.Room = 100 * EditorGUILayout.IntSlider("Master level", (int)((float)m_settings.CurPreset.Properties.Room / 100), -100, 0);
        m_settings.CurPreset.Properties.DecayTime = ((float)EditorGUILayout.IntSlider("Decay Time", (int)(m_settings.CurPreset.Properties.DecayTime * 1000), 100, 20000)) / 1000.0F;
        m_settings.CurPreset.Properties.DecayHFRatio = EditorGUILayout.Slider("HF Decay Ratio", m_settings.CurPreset.Properties.DecayHFRatio, 0.1f, 2);
        m_settings.CurPreset.Properties.ReflectionsDelay = (float)EditorGUILayout.IntSlider("Pre Delay", (int)(m_settings.CurPreset.Properties.ReflectionsDelay * 1000), 0, 300) / 1000;
        m_settings.CurPreset.Properties.ReverbDelay = (float)EditorGUILayout.IntSlider("Late Delay", (int)(m_settings.CurPreset.Properties.ReverbDelay * 1000), 0, 100) / 1000;
        m_settings.CurPreset.Properties.Reflections = (int)(100 * EditorGUILayout.Slider("Early Reflections", ((float)m_settings.CurPreset.Properties.Reflections / 100), -100, 10));
        m_settings.CurPreset.Properties.Reverb = (int)(100 * EditorGUILayout.Slider("Late Reflections", ((float)m_settings.CurPreset.Properties.Reverb / 100), -100, 20));
        m_settings.CurPreset.Properties.Diffusion = EditorGUILayout.IntSlider("Diffusion", (int)m_settings.CurPreset.Properties.Diffusion, 0, 100);
        m_settings.CurPreset.Properties.Density = EditorGUILayout.IntSlider("Density", (int)m_settings.CurPreset.Properties.Density, 0, 100);
        m_settings.CurPreset.Properties.RoomHF = (int)(100 * EditorGUILayout.Slider("HF Gain", ((float)m_settings.CurPreset.Properties.RoomHF / 100), -100, 0));
        m_settings.CurPreset.Properties.RoomLF = (int)(100 * EditorGUILayout.Slider("LF Gain", ((float)m_settings.CurPreset.Properties.RoomLF / 100), -100, 0));
        m_settings.CurPreset.Properties.HFReference = EditorGUILayout.IntSlider("HF Crossover", (int)m_settings.CurPreset.Properties.HFReference, 20, 20000);
        m_settings.CurPreset.Properties.LFReference = EditorGUILayout.IntSlider("LF Crossover", (int)m_settings.CurPreset.Properties.LFReference, 20, 1000);

        if (GUI.enabled && GUI.changed) {
        }
        GUI.enabled = true;
        if (GUILayout.Button("Save Settings")) {
            m_settings = ReverbSettings.SaveSettings(m_settings);
        }
    }
Example #11
0
    public static ReverbSettings Create()
    {
        ReverbSettings   reverbSettings = ScriptableObject.CreateInstance(typeof(ReverbSettings)) as ReverbSettings;
        GlobalReverbZone globalReverb   = GameObject.FindObjectOfType(typeof(GlobalReverbZone)) as GlobalReverbZone;
        GameObject       obj            = null;

        reverbSettings.PRESETS = new ReverbSettings.FmodReverbPreset[] {
            new FmodReverbPreset()
            {
                Properties = OFF_REVERB_PROPERTIES, Name = "Off"
            },
            new FmodReverbPreset()
            {
                Properties = GENERIC_REVERB_PROPERTIES, Name = "Generic"
            },
            new FmodReverbPreset()
            {
                Properties = PSYCHOTIC_REVERB_PROPERTIES, Name = "Psychotic"
            },
            new FmodReverbPreset()
            {
                Properties = GENERIC_REVERB_PROPERTIES, Name = "User"
            },
        };
        reverbSettings.hideFlags = HideFlags.HideInHierarchy;
        if (globalReverb == null)
        {
            obj = GameObject.Instantiate(Resources.Load("GlobalReverbZone")) as GameObject;

            globalReverb = obj.GetComponent <GlobalReverbZone>();
        }
        if (globalReverb != null)
        {
            globalReverb.settings = reverbSettings;
        }
        return(reverbSettings);
    }
Example #12
0
 // Use this for initialization
 void Start()
 {
     if (settings == null) {
         settings = ReverbSettings.Get();
     }
 }
Example #13
0
    private static void LoadSettings()
    {
        GlobalReverbZone globalReverb = GameObject.FindObjectOfType(typeof(GlobalReverbZone)) as GlobalReverbZone;

        if (LOADED_REVERB_SETTINGS == null) {
        #if UNITY_EDITOR
            UnityEngine.Object[] tmp = AssetDatabase.LoadAllAssetsAtPath(ReverbSettings.GetSettingsAssetPath());

            if (tmp.Length > 0 && tmp[0] != null) {
                LOADED_REVERB_SETTINGS = tmp[0] as ReverbSettings;
                if (LOADED_REVERB_SETTINGS != null) {
                    LOADED_REVERB_SETTINGS.afterDeserializePresets();

                    if (globalReverb == null) {
                        GameObject obj = GameObject.Instantiate(Resources.Load("GlobalReverbZone")) as GameObject;
                        globalReverb = obj.GetComponent<GlobalReverbZone>();
                    }
                    if (globalReverb != null) {
                        globalReverb.settings = LOADED_REVERB_SETTINGS;
                    }
                }
            }
        #endif
            if (globalReverb != null && LOADED_REVERB_SETTINGS == null) {
                LOADED_REVERB_SETTINGS = globalReverb.settings;
                if (LOADED_REVERB_SETTINGS != null) {
                    LOADED_REVERB_SETTINGS.afterDeserializePresets();
                }
            }
        }
    }
Example #14
0
    public static ReverbSettings SaveSettings(ReverbSettings toSave)
    {
        if (toSave != null) {
            ReverbSettings newSettings = ReverbSettings.Create(toSave);
            GlobalReverbZone globalReverb = GameObject.FindObjectOfType(typeof(GlobalReverbZone)) as GlobalReverbZone;

            newSettings.beforeSerializePresets();
        #if UNITY_EDITOR
            string settingsAssetPath = ReverbSettings.GetSettingsAssetPath();
            if (AssetDatabase.Contains(toSave) == true) {
                AssetDatabase.DeleteAsset(settingsAssetPath);
            }
            AssetDatabase.CreateAsset(newSettings, settingsAssetPath);
            AssetDatabase.SaveAssets();

            if (globalReverb != null) {
                newSettings.afterDeserializePresets();
                globalReverb.settings = newSettings;
                LOADED_REVERB_SETTINGS = globalReverb.settings;
                if (EditorApplication.isPlaying || EditorApplication.isPaused) {
                    FmodEventSystem.GetReverbManager().UpdateGlobalReverb();
                }
            }
        #endif
        } else {
            Debug.LogError("FMOD_Unity: ReverbSettings: Null reverb settings");
        }
        return (LOADED_REVERB_SETTINGS);
    }
Example #15
0
 public static ReverbSettings Get()
 {
     LoadSettings();
     if (LOADED_REVERB_SETTINGS == null) {
         LOADED_REVERB_SETTINGS = Create();
         ReverbSettings.SaveSettings(LOADED_REVERB_SETTINGS);
     }
     return (LOADED_REVERB_SETTINGS);
 }