123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- // Amplify Shader Editor - Visual Shader Editing Tool
- // Copyright (c) Amplify Creations, Lda <info@amplify.pt>
- using UnityEditor;
- using UnityEngine;
- namespace AmplifyShaderEditor
- {
- public partial class Preferences
- {
- public enum ShowOption
- {
- Always = 0,
- OnNewVersion = 1,
- Never = 2
- }
- public class User
- {
- private class Styles
- {
- public static readonly GUIContent StartUp = new GUIContent( "Show start screen on Unity launch", "You can set if you want to see the start screen everytime Unity launchs, only just when there's a new version available or never." );
- public static readonly GUIContent AlwaysSnapToGrid = new GUIContent( "Always Snap to Grid", "Always snap to grid when dragging nodes around, instead of using control." );
- public static readonly GUIContent EnableUndo = new GUIContent( "Enable Undo (unstable)", "Enables undo for actions within the shader graph canvas. Currently unstable, use with caution." );
- public static readonly GUIContent ClearLog = new GUIContent( "Clear Log on Update", "Clears the previously generated log each time the Update button is pressed." );
- public static readonly GUIContent LogShaderCompile = new GUIContent( "Log Shader Compile", "Log message to console when a shader compilation is finished." );
- public static readonly GUIContent LogBatchCompile = new GUIContent( "Log Batch Compile", "Log message to console when a batch compilation is finished." );
- public static readonly GUIContent UpdateOnSceneSave = new GUIContent( "Update on Scene save (Ctrl+S)", "ASE is aware of Ctrl+S and will use it to save shader." );
- public static readonly GUIContent DisablePreviews = new GUIContent( "Disable Node Previews", "Disable preview on nodes from being updated to boost up performance on large graphs." );
- public static readonly GUIContent DisableMaterialMode = new GUIContent( "Disable Material Mode", "Disable enter Material Mode graph when double-clicking on material asset." );
- public static readonly GUIContent ForceTemplateMinShaderModel = new GUIContent( "Force Template Min. Shader Model", "If active, when loading a shader its shader model will be replaced by the one specified in template if what is loaded is below the one set over the template." );
- public static readonly GUIContent ForceTemplateInlineProperties = new GUIContent( "Force Template Inline Properties", "If active, defaults all inline properties to template values." );
- }
- private class Defaults
- {
- public const ShowOption StartUp = ShowOption.Always;
- public const bool AlwaysSnapToGrid = true;
- public const bool EnableUndo = false;
- public const bool ClearLog = true;
- public const bool LogShaderCompile = false;
- public const bool LogBatchCompile = false;
- public const bool UpdateOnSceneSave = true;
- public const bool DisablePreviews = false;
- public const bool DisableMaterialMode = false;
- public const bool ForceTemplateMinShaderModel = true;
- public const bool ForceTemplateInlineProperties = false;
- }
- // @diogo: make this private
- public class Keys
- {
- public static string StartUp = "ASELastSession";
- public static string AlwaysSnapToGrid = "ASEAlwaysSnapToGrid";
- public static string EnableUndo = "ASEEnableUndo";
- public static string ClearLog = "ASEClearLog";
- public static string LogShaderCompile = "ASELogShaderCompile";
- public static string LogBatchCompile = "ASELogBatchCompile";
- public static string UpdateOnSceneSave = "ASEUpdateOnSceneSave";
- public static string DisablePreviews = "ASEActivatePreviews";
- public static string DisableMaterialMode = "ASEDisableMaterialMode";
- public static string ForceTemplateMinShaderModel = "ASEForceTemplateMinShaderModel";
- public static string ForceTemplateInlineProperties = "ASEForceTemplateInlineProperties";
- }
- public static ShowOption StartUp = Defaults.StartUp;
- public static bool AlwaysSnapToGrid = Defaults.AlwaysSnapToGrid;
- public static bool EnableUndo = Defaults.EnableUndo;
- public static bool ClearLog = Defaults.ClearLog;
- public static bool LogShaderCompile = Defaults.LogShaderCompile;
- public static bool LogBatchCompile = Defaults.LogBatchCompile;
- public static bool UpdateOnSceneSave = Defaults.UpdateOnSceneSave;
- public static bool DisablePreviews = Defaults.DisablePreviews;
- public static bool DisableMaterialMode = Defaults.DisableMaterialMode;
- public static bool ForceTemplateMinShaderModel = Defaults.ForceTemplateMinShaderModel;
- public static bool ForceTemplateInlineProperties = Defaults.ForceTemplateInlineProperties;
- public static void ResetSettings()
- {
- EditorPrefs.DeleteKey( Keys.StartUp );
- EditorPrefs.DeleteKey( Keys.AlwaysSnapToGrid );
- EditorPrefs.DeleteKey( Keys.EnableUndo );
- EditorPrefs.DeleteKey( Keys.ClearLog );
- EditorPrefs.DeleteKey( Keys.LogShaderCompile );
- EditorPrefs.DeleteKey( Keys.LogBatchCompile );
- EditorPrefs.DeleteKey( Keys.UpdateOnSceneSave );
- EditorPrefs.DeleteKey( Keys.DisablePreviews );
- EditorPrefs.DeleteKey( Keys.DisableMaterialMode );
- EditorPrefs.DeleteKey( Keys.ForceTemplateMinShaderModel );
- EditorPrefs.DeleteKey( Keys.ForceTemplateInlineProperties );
- StartUp = Defaults.StartUp;
- AlwaysSnapToGrid = Defaults.AlwaysSnapToGrid;
- EnableUndo = Defaults.EnableUndo;
- ClearLog = Defaults.ClearLog;
- LogShaderCompile = Defaults.LogShaderCompile;
- LogBatchCompile = Defaults.LogBatchCompile;
- UpdateOnSceneSave = Defaults.UpdateOnSceneSave;
- DisablePreviews = Defaults.DisablePreviews;
- DisableMaterialMode = Defaults.DisableMaterialMode;
- ForceTemplateMinShaderModel = Defaults.ForceTemplateMinShaderModel;
- ForceTemplateInlineProperties = Defaults.ForceTemplateInlineProperties;
- }
- public static void LoadSettings()
- {
- StartUp = ( ShowOption )EditorPrefs.GetInt( Keys.StartUp, ( int )Defaults.StartUp );
- AlwaysSnapToGrid = EditorPrefs.GetBool( Keys.AlwaysSnapToGrid, Defaults.AlwaysSnapToGrid );
- EnableUndo = EditorPrefs.GetBool( Keys.EnableUndo, Defaults.EnableUndo );
- ClearLog = EditorPrefs.GetBool( Keys.ClearLog, Defaults.ClearLog );
- LogShaderCompile = EditorPrefs.GetBool( Keys.LogShaderCompile, Defaults.LogShaderCompile );
- LogBatchCompile = EditorPrefs.GetBool( Keys.LogBatchCompile, Defaults.LogBatchCompile );
- UpdateOnSceneSave = EditorPrefs.GetBool( Keys.UpdateOnSceneSave, Defaults.UpdateOnSceneSave );
- DisablePreviews = EditorPrefs.GetBool( Keys.DisablePreviews, Defaults.DisablePreviews );
- DisableMaterialMode = EditorPrefs.GetBool( Keys.DisableMaterialMode, Defaults.DisableMaterialMode );
- ForceTemplateMinShaderModel = EditorPrefs.GetBool( Keys.ForceTemplateMinShaderModel, Defaults.ForceTemplateMinShaderModel );
- ForceTemplateInlineProperties = EditorPrefs.GetBool( Keys.ForceTemplateInlineProperties, Defaults.ForceTemplateInlineProperties );
- }
- public static void SaveSettings()
- {
- bool prevDisablePreviews = EditorPrefs.GetBool( Keys.DisablePreviews, false );
- if ( DisablePreviews != prevDisablePreviews )
- {
- UIUtils.ActivatePreviews( !DisablePreviews );
- }
- EditorPrefs.SetInt( Keys.StartUp, ( int )StartUp );
- EditorPrefs.SetBool( Keys.AlwaysSnapToGrid, AlwaysSnapToGrid );
- EditorPrefs.SetBool( Keys.EnableUndo, EnableUndo );
- EditorPrefs.SetBool( Keys.ClearLog, ClearLog );
- EditorPrefs.SetBool( Keys.LogShaderCompile, LogShaderCompile );
- EditorPrefs.SetBool( Keys.LogBatchCompile, LogBatchCompile );
- EditorPrefs.SetBool( Keys.UpdateOnSceneSave, UpdateOnSceneSave );
- EditorPrefs.SetBool( Keys.DisablePreviews, DisablePreviews );
- EditorPrefs.SetBool( Keys.DisableMaterialMode, DisableMaterialMode );
- EditorPrefs.SetBool( Keys.ForceTemplateMinShaderModel, ForceTemplateMinShaderModel );
- EditorPrefs.SetBool( Keys.ForceTemplateInlineProperties, ForceTemplateInlineProperties );
- }
- public static void InspectorLayout()
- {
- StartUp = ( ShowOption )EditorGUILayout.EnumPopup( Styles.StartUp, StartUp );
- AlwaysSnapToGrid = EditorGUILayout.Toggle( Styles.AlwaysSnapToGrid, AlwaysSnapToGrid );
- EnableUndo = EditorGUILayout.Toggle( Styles.EnableUndo, EnableUndo );
- ClearLog = EditorGUILayout.Toggle( Styles.ClearLog, ClearLog );
- LogShaderCompile = EditorGUILayout.Toggle( Styles.LogShaderCompile, LogShaderCompile );
- LogBatchCompile = EditorGUILayout.Toggle( Styles.LogBatchCompile, LogBatchCompile );
- UpdateOnSceneSave = EditorGUILayout.Toggle( Styles.UpdateOnSceneSave, UpdateOnSceneSave );
- DisablePreviews = EditorGUILayout.Toggle( Styles.DisablePreviews, DisablePreviews );
- DisableMaterialMode = EditorGUILayout.Toggle( Styles.DisableMaterialMode, DisableMaterialMode );
- ForceTemplateMinShaderModel = EditorGUILayout.Toggle( Styles.ForceTemplateMinShaderModel, ForceTemplateMinShaderModel );
- ForceTemplateInlineProperties = EditorGUILayout.Toggle( Styles.ForceTemplateInlineProperties, ForceTemplateInlineProperties );
- }
- }
- }
- }
|