// Use this for initialization void Start() { if (settings == null) { settings = ReverbSettings.Get(); } }
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 ()); } }
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); }
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()); } }
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));; } }
public static ReverbSettings Get() { LoadSettings(); if (LOADED_REVERB_SETTINGS == null) { LOADED_REVERB_SETTINGS = Create(); ReverbSettings.SaveSettings(LOADED_REVERB_SETTINGS); } return(LOADED_REVERB_SETTINGS); }
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); } }
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); } }
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); }
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 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); }
public static ReverbSettings Get() { LoadSettings(); if (LOADED_REVERB_SETTINGS == null) { LOADED_REVERB_SETTINGS = Create(); ReverbSettings.SaveSettings(LOADED_REVERB_SETTINGS); } return (LOADED_REVERB_SETTINGS); }