private void ReadPreferences() { m_ScriptEditorPath.str = CodeEditor.Editor.EditorInstallation.Path; m_ExternalEditorSupportsUnityProj = EditorPrefs.GetBool("kExternalEditorSupportsUnityProj", false); m_ImageAppPath.str = EditorPrefs.GetString("kImagesDefaultApp"); m_ScriptApps = BuildAppPathList(m_ScriptEditorPath, kRecentScriptAppsKey, "internal"); m_ScriptAppsEditions = new string[m_ScriptApps.Length]; var foundScriptEditorPaths = CodeEditor.Editor.GetFoundScriptEditorPaths(); foreach (var scriptEditorPath in foundScriptEditorPaths.Keys) { ArrayUtility.Add(ref m_ScriptApps, scriptEditorPath); ArrayUtility.Add(ref m_ScriptAppsEditions, null); } m_ImageApps = BuildAppPathList(m_ImageAppPath, kRecentImageAppsKey, ""); m_ScriptAppDisplayNames = BuildFriendlyAppNameList(m_ScriptApps, m_ScriptAppsEditions, foundScriptEditorPaths, "Open by file extension"); m_ImageAppDisplayNames = BuildFriendlyAppNameList(m_ImageApps, null, null, L10n.Tr("Open by file extension")); m_DiffTools = InternalEditorUtility.GetAvailableDiffTools(); // only show warning if has team license if ((m_DiffTools == null || m_DiffTools.Length == 0) && InternalEditorUtility.HasTeamLicense()) { m_noDiffToolsMessage = InternalEditorUtility.GetNoDiffToolsDetectedMessage(); } string diffTool = EditorPrefs.GetString("kDiffsDefaultApp"); m_DiffToolIndex = ArrayUtility.IndexOf(m_DiffTools, diffTool); if (m_DiffToolIndex == -1) { m_DiffToolIndex = 0; } m_AutoRefresh = EditorPrefs.GetBool("kAutoRefresh"); m_ReopenLastUsedProjectOnStartup = EditorPrefs.GetBool("ReopenLastUsedProjectOnStartup"); m_UseOSColorPicker = EditorPrefs.GetBool("UseOSColorPicker"); m_EnableEditorAnalytics = EditorPrefs.GetBool("EnableEditorAnalytics", true); m_ShowAssetStoreSearchHits = EditorPrefs.GetBool("ShowAssetStoreSearchHits", true); m_VerifySavingAssets = EditorPrefs.GetBool("VerifySavingAssets", false); m_ScriptCompilationDuringPlay = (ScriptChangesDuringPlayOptions)EditorPrefs.GetInt("ScriptCompilationDuringPlay", 0); m_DeveloperMode = Unsupported.IsDeveloperMode(); m_GICacheSettings.m_EnableCustomPath = EditorPrefs.GetBool("GICacheEnableCustomPath"); m_GICacheSettings.m_CachePath = EditorPrefs.GetString("GICacheFolder"); m_GICacheSettings.m_MaximumSize = EditorPrefs.GetInt("GICacheMaximumSizeGB", 10); m_GICacheSettings.m_CompressionLevel = EditorPrefs.GetInt("GICacheCompressionLevel"); m_SpriteAtlasCacheSize = EditorPrefs.GetInt("SpritePackerCacheMaximumSizeGB"); m_AllowAttachedDebuggingOfEditor = EditorPrefs.GetBool("AllowAttachedDebuggingOfEditor", true); m_EnableEditorLocalization = EditorPrefs.GetBool("Editor.kEnableEditorLocalization", true); m_SelectedLanguage = EditorPrefs.GetString("Editor.kEditorLocale", LocalizationDatabase.GetDefaultEditorLanguage().ToString()); m_AllowAlphaNumericHierarchy = EditorPrefs.GetBool("AllowAlphaNumericHierarchy", false); m_EnableCodeCoverage = EditorPrefs.GetBool("CodeCoverageEnabled", false); m_CompressAssetsOnImport = Unsupported.GetApplicationSettingCompressAssetsOnImport(); m_GpuDevice = EditorPrefs.GetString("GpuDeviceName"); foreach (IPreferenceWindowExtension extension in prefWinExtensions) { extension.ReadPreferences(); } }
private void ShowGeneral(string searchContext) { // Options bool collabEnabled = Collab.instance.IsCollabEnabledForCurrentProject(); using (new EditorGUI.DisabledScope(collabEnabled)) { if (collabEnabled) { EditorGUILayout.Toggle(GeneralProperties.autoRefresh, true); // Don't keep toggle value in m_AutoRefresh since we don't want to save the overwritten value EditorGUILayout.HelpBox(GeneralProperties.autoRefreshHelpBox); } else { m_AutoRefresh = EditorGUILayout.Toggle(GeneralProperties.autoRefresh, m_AutoRefresh); } } m_ReopenLastUsedProjectOnStartup = EditorGUILayout.Toggle(GeneralProperties.loadPreviousProjectOnStartup, m_ReopenLastUsedProjectOnStartup); bool oldCompressOnImport = m_CompressAssetsOnImport; m_CompressAssetsOnImport = EditorGUILayout.Toggle(GeneralProperties.compressAssetsOnImport, oldCompressOnImport); if (GUI.changed && m_CompressAssetsOnImport != oldCompressOnImport) { Unsupported.SetApplicationSettingCompressAssetsOnImport(m_CompressAssetsOnImport); } if (Application.platform == RuntimePlatform.OSXEditor) { m_UseOSColorPicker = EditorGUILayout.Toggle(GeneralProperties.osxColorPicker, m_UseOSColorPicker); } bool pro = UnityEngine.Application.HasProLicense(); using (new EditorGUI.DisabledScope(!pro)) { m_EnableEditorAnalytics = !EditorGUILayout.Toggle(GeneralProperties.disableEditorAnalytics, !m_EnableEditorAnalytics) || !pro && !m_EnableEditorAnalytics; } bool assetStoreSearchChanged = false; EditorGUI.BeginChangeCheck(); m_ShowAssetStoreSearchHits = EditorGUILayout.Toggle(GeneralProperties.showAssetStoreSearchHits, m_ShowAssetStoreSearchHits); if (EditorGUI.EndChangeCheck()) { assetStoreSearchChanged = true; } m_VerifySavingAssets = EditorGUILayout.Toggle(GeneralProperties.verifySavingAssets, m_VerifySavingAssets); m_ScriptCompilationDuringPlay = (ScriptChangesDuringPlayOptions)EditorGUILayout.EnumPopup(GeneralProperties.scriptChangesDuringPlay, m_ScriptCompilationDuringPlay); // Only show this toggle if this is a source build or we're already in developer mode. // We don't want to show this to users yet. if (Unsupported.IsSourceBuild() || m_DeveloperMode) { EditorGUI.BeginChangeCheck(); m_DeveloperMode = EditorGUILayout.Toggle("Developer Mode", m_DeveloperMode); if (EditorGUI.EndChangeCheck()) { m_DeveloperModeDirty = true; } } using (new EditorGUI.DisabledScope(!pro)) { int newSkin = EditorGUILayout.Popup(GeneralProperties.editorSkin, !EditorGUIUtility.isProSkin ? 0 : 1, GeneralProperties.editorSkinOptions); if ((!EditorGUIUtility.isProSkin ? 0 : 1) != newSkin) { InternalEditorUtility.SwitchSkinAndRepaintAllViews(); } } bool oldAlphaNumeric = m_AllowAlphaNumericHierarchy; m_AllowAlphaNumericHierarchy = EditorGUILayout.Toggle(GeneralProperties.enableAlphaNumericSorting, m_AllowAlphaNumericHierarchy); if (InternalEditorUtility.IsGpuDeviceSelectionSupported()) { // Cache gpu devices if (m_CachedGpuDevices == null) { var devices = InternalEditorUtility.GetGpuDevices(); m_CachedGpuDevices = new string[devices.Length + 1]; m_CachedGpuDevices[0] = "Automatic"; Array.Copy(devices, 0, m_CachedGpuDevices, 1, devices.Length); } // Try to find selected gpu device var currentGpuDeviceIndex = Array.FindIndex(m_CachedGpuDevices, gpuDevice => m_GpuDevice == gpuDevice); if (currentGpuDeviceIndex == -1) { currentGpuDeviceIndex = 0; } var newGpuDeviceIndex = EditorGUILayout.Popup("Device To Use", currentGpuDeviceIndex, m_CachedGpuDevices); if (currentGpuDeviceIndex != newGpuDeviceIndex) { m_GpuDevice = m_CachedGpuDevices[newGpuDeviceIndex]; InternalEditorUtility.SetGpuDeviceAndRecreateGraphics(newGpuDeviceIndex - 1, m_GpuDevice); } } m_EnableCodeCoverage = EditorGUILayout.Toggle(GeneralProperties.codeCoverageEnabled, m_EnableCodeCoverage); if (m_EnableCodeCoverage != Coverage.enabled) { EditorGUILayout.HelpBox((m_EnableCodeCoverage ? "Enabling " : "Disabling ") + "Code Coverage will not take effect until Unity is restarted.", MessageType.Warning); } ApplyChangesToPrefs(); if (oldAlphaNumeric != m_AllowAlphaNumericHierarchy) { EditorApplication.DirtyHierarchyWindowSorting(); } if (assetStoreSearchChanged) { ProjectBrowser.ShowAssetStoreHitsWhileSearchingLocalAssetsChanged(); } }