/// <summary> /// Retrievse all the quality settings /// </summary> private void PopulateExistingQualitySettingsPresetsList() { _foundQualitySettingsPresets = new List <string>(); string[] tmp = AssetDatabase.FindAssets("t:AuraQualitySettings"); for (int i = 0; i < tmp.Length; ++i) { string path = AssetDatabase.GUIDToAssetPath(tmp[i]); if (!AssetDatabase.LoadAssetAtPath <AuraQualitySettings>(path).Equals(Aura.ResourcesCollection.editionCameraQualitySettings)) // rule out edition quality settings { _foundQualitySettingsPresets.Add(path); } } _selectedQualitySettingsPresetId = -1; if (_foundQualitySettingsPresets.Count > 0) { _foundQualitySettingsPresetsName = new string[_foundQualitySettingsPresets.Count]; for (int i = 0; i < _foundQualitySettingsPresets.Count; ++i) { AuraQualitySettings preset = AssetDatabase.LoadAssetAtPath <AuraQualitySettings>(_foundQualitySettingsPresets[i]); if (_currentAuraComponent.frustumSettings.qualitySettings == preset) { _foundQualitySettingsPresetsName[i] = "Current"; _selectedQualitySettingsPresetId = i; continue; } _foundQualitySettingsPresetsName[i] = preset.name; string presetPath = Directory.GetParent(AssetDatabase.GetAssetPath(preset)).FullName; presetPath = ("Assets" + presetPath.Substring(Application.dataPath.Length) + "\\").Replace('/', '\\'); _foundQualitySettingsPresetsName[i] += " (in " + presetPath + ")"; } } }
private static void Initialize(SerializedObject serializedObject) { _debugVolumetricLightingProperty = serializedObject.FindProperty("displayVolumetricLightingBuffer"); _frustumGridResolutionProperty = serializedObject.FindProperty("frustumGridResolution"); _enableAutomaticStereoResizingProperty = serializedObject.FindProperty("enableAutomaticStereoResizing"); _gridSettingsFarPlaneProperty = serializedObject.FindProperty("farClipPlaneDistance"); _depthBiasCoefficientProperty = serializedObject.FindProperty("depthBiasCoefficient"); _enableVolumesProperty = serializedObject.FindProperty("enableVolumes"); _enableVolumesTexture2DMaskProperty = serializedObject.FindProperty("enableVolumesTexture2DMask"); _enableVolumesTexture3DMaskProperty = serializedObject.FindProperty("enableVolumesTexture3DMask"); _enableVolumesNoiseMaskProperty = serializedObject.FindProperty("enableVolumesNoiseMask"); _enableAmbientLightingProperty = serializedObject.FindProperty("enableAmbientLighting"); _enableDirectionalLightsProperty = serializedObject.FindProperty("enableDirectionalLights"); _enableDirectionalLightsShadowsProperty = serializedObject.FindProperty("enableDirectionalLightsShadows"); _enableSpotLightsProperty = serializedObject.FindProperty("enableSpotLights"); _enableSpotLightsShadowsProperty = serializedObject.FindProperty("enableSpotLightsShadows"); _enablePointLightsProperty = serializedObject.FindProperty("enablePointLights"); _enablePointLightsShadowsProperty = serializedObject.FindProperty("enablePointLightsShadows"); _enableLightsCookiesProperty = serializedObject.FindProperty("enableLightsCookies"); _enableDitheringProperty = serializedObject.FindProperty("enableDithering"); _texture3DFilteringProperty = serializedObject.FindProperty("texture3DFiltering"); _enableDenoisingFilterProperty = serializedObject.FindProperty("enableDenoisingFilter"); _denoisingFilterRangeProperty = serializedObject.FindProperty("denoisingFilterRange"); _enableTemporalReprojectionProperty = serializedObject.FindProperty("enableTemporalReprojection"); _temporalReprojectionFactorProperty = serializedObject.FindProperty("temporalReprojectionFactor"); _enableOcclusionCullingProperty = serializedObject.FindProperty("enableOcclusionCulling"); _occlusionCullingAccuracyProperty = serializedObject.FindProperty("occlusionCullingAccuracy"); _enableLightProbesProperty = serializedObject.FindProperty("enableLightProbes"); //_lightProbesProxyGridResolutionProperty = serializedObject.FindProperty("lightProbesProxyGridResolution"); _current = (AuraQualitySettings)serializedObject.targetObject; }
/// <summary> /// Shows the file saving window then saves the frustum quality settings as an asset /// </summary> public void SaveQualitySettings() { string fullPathName = EditorUtility.SaveFilePanelInProject("Save Quality Settings", QualitySettings.name, "asset", "Please select a location and a filename."); if (fullPathName.Length > 0) { AuraQualitySettings qualitySettingsInstance = AuraQualitySettings.Instantiate <AuraQualitySettings>(QualitySettings); AssetDatabase.CreateAsset(qualitySettingsInstance, fullPathName); QualitySettings = qualitySettingsInstance; } }
/// <summary> /// Shows the file selection window then replaces the current frustum quality settings with the selected one /// </summary> public void LoadQualitySettings() { string dataFolderPath = Application.dataPath + "/"; string path = EditorUtility.OpenFilePanelWithFilters("Load Quality Settings", Application.dataPath, new string[] { "Aura Quality Settings", "asset" }); if (path.StartsWith(dataFolderPath, StringComparison.CurrentCultureIgnoreCase)) { path = "Assets/" + path.Substring(dataFolderPath.Length); AuraQualitySettings loadedSettings = AssetDatabase.LoadAssetAtPath <AuraQualitySettings>(path); LoadQualitySettings(loadedSettings); } }
private void OnEnable() { _currentAuraComponent = (AuraCamera)serializedObject.targetObject; _baseSettingsTabButtonContent = new GUIContent("Base Settings", Aura.ResourcesCollection.injectionIconTexture, "Displays the BASE SETTINGS panel"); _baseSettingsProperty = serializedObject.FindProperty("frustumSettings.baseSettings"); _qualitySettingsTabButtonContent = new GUIContent("Quality Settings", Aura.ResourcesCollection.optionsIconTexture, "Displays the QUALITY SETTINGS panel"); _qualitySettingsProperty = serializedObject.FindProperty("frustumSettings.qualitySettings"); _previousQualitySettings = (AuraQualitySettings)_qualitySettingsProperty.objectReferenceValue; PopulateExistingBaseSettingsPresetsList(); PopulateExistingQualitySettingsPresetsList(); }
/// <summary> /// Replaces the current quality settings /// </summary> /// <param name="qualitySettings">the replacing quality settings</param> public void LoadQualitySettings(AuraQualitySettings qualitySettings) { this.QualitySettings = qualitySettings; }
/// <summary> /// Draws the quality settings area /// </summary> private void DisplayQualitySettingsArea() { AuraQualitySettings currentQualitySettings = (AuraQualitySettings)_qualitySettingsProperty.objectReferenceValue; if (!ReferenceEquals(_previousQualitySettings, currentQualitySettings)) { _currentAuraComponent.frustumSettings.RaiseOnQualityChanged(); PopulateExistingQualitySettingsPresetsList(); } _previousQualitySettings = currentQualitySettings; EditorGUILayout.BeginVertical(GuiStyles.ButtonNoHover); EditorGUILayout.BeginVertical(GuiStyles.Background); EditorGUILayout.Separator(); GUILayout.Label(new GUIContent("Aura <b>Quality Settings</b>", Aura.ResourcesCollection.qualitySettingsPresetIconTexture), new GUIStyle(GuiStyles.LabelCenteredBig) { fontSize = 15 }); EditorGUILayout.Separator(); GuiHelpers.DrawContextualHelpBox("The \"Quality Settings Preset\" is the asset that holds the quality settings for the data computation."); //if (_foundQualitySettingsPresets.Count != AssetDatabase.FindAssets("t:AuraQualitySettings").Length) //{ // PopulateExistingQualitySettingsPresetsList(); //} if (_foundQualitySettingsPresets.Count > 0) { EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Select Existing", GuiStyles.Label, GUILayout.MaxWidth(96)); _selectedQualitySettingsPresetId = EditorGUILayout.Popup(_selectedQualitySettingsPresetId, _foundQualitySettingsPresetsName); EditorGUILayout.EndHorizontal(); if (EditorGUI.EndChangeCheck()) { _currentAuraComponent.frustumSettings.LoadQualitySettings(AssetDatabase.LoadAssetAtPath <AuraQualitySettings>(_foundQualitySettingsPresets[_selectedQualitySettingsPresetId])); PopulateExistingQualitySettingsPresetsList(); } EditorGUILayout.Separator(); EditorGUILayout.Separator(); } EditorGUILayout.BeginHorizontal(); GUILayout.Label("Preset File", GuiStyles.Label, GUILayout.MaxWidth(80)); EditorGUILayout.PropertyField(_qualitySettingsProperty, new GUIContent("")); EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.BeginHorizontal(); //if (GUILayout.Button(new GUIContent("Load Existing", Aura.AuraResourcesCollection.loadIconTexture, "Loads an existing preset file"), GuiStyles.ButtonBigNoBorder)) //{ // _currentAuraComponent.frustumSettings.LoadQualitySettings(); //} //GUILayout.Space(8); if (GUILayout.Button(new GUIContent("Save As New Preset", Aura.ResourcesCollection.saveIconTexture, "Saves the current settings in a new file"), GuiStyles.ButtonBigNoBorder)) { _currentAuraComponent.frustumSettings.SaveQualitySettings(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); SerializedObject qualitySettingsObject = new SerializedObject(_currentAuraComponent.frustumSettings.QualitySettings); AuraQualitySettingsEditor.DrawCustomEditor(qualitySettingsObject, _currentAuraComponent, false, true); EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); }