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()); } }
public static bool enableCreateGlobalReverb() { if (EditorApplication.isPlayingOrWillChangePlaymode) { return(false); } GlobalReverbZone obj = GameObject.FindObjectOfType(typeof(GlobalReverbZone)) as GlobalReverbZone; return(obj == null); }
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 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); }
public static bool enableGlobalSettingsWindow() { GlobalReverbZone obj = GameObject.FindObjectOfType(typeof(GlobalReverbZone)) as GlobalReverbZone; return(obj != null); }