public static void WritePreferences() { if (CacheServerPreferences.GetCommandLineRemoteAddressOverride() == null) { CacheServerPreferences.CacheServerMode @int = (CacheServerPreferences.CacheServerMode)EditorPrefs.GetInt("CacheServerMode"); string @string = EditorPrefs.GetString("LocalCacheServerPath"); bool @bool = EditorPrefs.GetBool("LocalCacheServerCustomPath"); bool flag = false; if (@int != CacheServerPreferences.s_CacheServerMode && @int == CacheServerPreferences.CacheServerMode.Local) { flag = true; } if (CacheServerPreferences.s_EnableCustomPath && @string != CacheServerPreferences.s_CachePath) { flag = true; } if (CacheServerPreferences.s_EnableCustomPath != @bool && CacheServerPreferences.s_CachePath != LocalCacheServer.GetCacheLocation() && CacheServerPreferences.s_CachePath != "") { flag = true; } if (flag) { CacheServerPreferences.s_LocalCacheServerUsedSize = -1L; string text = (CacheServerPreferences.s_CacheServerMode != CacheServerPreferences.CacheServerMode.Local) ? "You have disabled the local cache." : "You have changed the location of the local cache storage."; text = text + " Do you want to delete the old locally cached data at " + LocalCacheServer.GetCacheLocation() + "?"; if (EditorUtility.DisplayDialog("Delete old Cache", text, "Delete", "Don't Delete")) { LocalCacheServer.Clear(); CacheServerPreferences.s_LocalCacheServerUsedSize = -1L; } } EditorPrefs.SetString("CacheServerIPAddress", CacheServerPreferences.s_CacheServerIPAddress); EditorPrefs.SetInt("CacheServerMode", (int)CacheServerPreferences.s_CacheServerMode); EditorPrefs.SetInt("LocalCacheServerSize", CacheServerPreferences.s_LocalCacheServerSize); EditorPrefs.SetString("LocalCacheServerPath", CacheServerPreferences.s_CachePath); EditorPrefs.SetBool("LocalCacheServerCustomPath", CacheServerPreferences.s_EnableCustomPath); LocalCacheServer.Setup(); if (flag) { GUIUtility.ExitGUI(); } } }
private void DoCacheServerSettings() { GUILayout.Space(10); GUILayout.Label(Content.cacheServer, EditorStyles.boldLabel); var overrideAddress = CacheServerPreferences.GetCommandLineRemoteAddressOverride(); if (overrideAddress != null) { EditorGUILayout.HelpBox("Cache Server remote address forced via command line argument. To use the cache server address specified here please restart Unity without the -CacheServerIPAddress command line argument.", MessageType.Info, true); } int index = Mathf.Clamp((int)EditorSettings.cacheServerMode, 0, cacheServerModePopupList.Length - 1); CreatePopupMenu(Content.mode.text, cacheServerModePopupList, index, SetCacheServerMode); if (index != (int)CacheServerMode.Disabled) { bool isCacheServerEnabled = true; if (index == (int)CacheServerMode.AsPreferences) { if (CacheServerPreferences.IsCacheServerV2Enabled) { var cacheServerIP = CacheServerPreferences.CachesServerV2Address; cacheServerIP = string.IsNullOrEmpty(cacheServerIP) ? "Not set in preferences" : cacheServerIP; EditorGUILayout.HelpBox(cacheServerIP, MessageType.None, false); } else { isCacheServerEnabled = false; EditorGUILayout.HelpBox("Disabled", MessageType.None, false); } } if (isCacheServerEnabled) { var oldEndpoint = EditorSettings.cacheServerEndpoint; var newEndpoint = EditorGUILayout.TextField(Content.cacheServerIPLabel, oldEndpoint); if (newEndpoint != oldEndpoint) { EditorSettings.cacheServerEndpoint = newEndpoint; } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Check Connection", GUILayout.Width(150))) { if (AssetDatabase.IsV2Enabled()) { var address = EditorSettings.cacheServerEndpoint.Split(':'); var ip = address[0]; UInt16 port = 0; // If 0, will use the default set port if (address.Length == 2) { port = Convert.ToUInt16(address[1]); } if (AssetDatabaseExperimental.CanConnectToCacheServer(ip, port)) { m_CacheServerConnectionState = CacheServerConnectionState.Success; } else { m_CacheServerConnectionState = CacheServerConnectionState.Failure; } } else { if (InternalEditorUtility.CanConnectToCacheServer()) { m_CacheServerConnectionState = CacheServerConnectionState.Success; } else { m_CacheServerConnectionState = CacheServerConnectionState.Failure; } } } GUILayout.Space(25); switch (m_CacheServerConnectionState) { case CacheServerConnectionState.Success: EditorGUILayout.HelpBox("Connection successful.", MessageType.Info, true); break; case CacheServerConnectionState.Failure: EditorGUILayout.HelpBox("Connection failed.", MessageType.Warning, true); break; case CacheServerConnectionState.Unknown: GUILayout.Space(44); break; } EditorGUILayout.EndHorizontal(); var old = EditorSettings.cacheServerNamespacePrefix; var newvalue = EditorGUILayout.TextField(Content.cacheServerNamespacePrefixLabel, old); if (newvalue != old) { EditorSettings.cacheServerNamespacePrefix = newvalue; } EditorGUI.BeginChangeCheck(); bool enableDownload = EditorSettings.cacheServerEnableDownload; enableDownload = EditorGUILayout.Toggle(Content.cacheServerEnableDownloadLabel, enableDownload); if (EditorGUI.EndChangeCheck()) { EditorSettings.cacheServerEnableDownload = enableDownload; } EditorGUI.BeginChangeCheck(); bool enableUpload = EditorSettings.cacheServerEnableUpload; enableUpload = EditorGUILayout.Toggle(Content.cacheServerEnableUploadLabel, enableUpload); if (EditorGUI.EndChangeCheck()) { EditorSettings.cacheServerEnableUpload = enableUpload; } bool enableAuth = EditorSettings.cacheServerEnableAuth; using (new EditorGUI.DisabledScope(enableAuth)) { EditorGUI.BeginChangeCheck(); bool enableTls = EditorSettings.cacheServerEnableTls; enableTls = EditorGUILayout.Toggle(Content.cacheServerEnableTlsLabel, enableTls); if (EditorGUI.EndChangeCheck()) { EditorSettings.cacheServerEnableTls = enableTls; } } EditorGUI.BeginChangeCheck(); enableAuth = EditorGUILayout.Toggle(Content.cacheServerEnableAuthLabel, enableAuth); if (EditorGUI.EndChangeCheck()) { EditorSettings.cacheServerEnableAuth = enableAuth; if (enableAuth) { EditorSettings.cacheServerEnableTls = true; } } EditorGUI.indentLevel++; using (new EditorGUI.DisabledScope(!enableAuth)) { int authModeIndex = Convert.ToInt32(EditorUserSettings.GetConfigValue("cacheServerAuthMode")); CreatePopupMenu(Content.mode.text, cacheServerAuthMode, authModeIndex, SetCacheServerAuthMode); string oldUserVal = EditorUserSettings.GetConfigValue("cacheServerAuthUser"); var newUserVal = EditorGUILayout.TextField(Content.cacheServerAuthUserLabel, oldUserVal); if (newUserVal != oldUserVal) { EditorUserSettings.SetConfigValue("cacheServerAuthUser", newUserVal); } var oldPasswordVal = EditorUserSettings.GetConfigValue("cacheServerAuthPassword"); var newPasswordVal = EditorGUILayout.PasswordField(Content.cacheServerAuthPasswordLabel, oldPasswordVal); if (newPasswordVal != oldPasswordVal) { EditorUserSettings.SetPrivateConfigValue("cacheServerAuthPassword", newPasswordVal); } } EditorGUI.indentLevel--; } } }
private static void OnGUI() { EventType type = Event.current.type; if (CacheServerPreferences.s_Constants == null) { CacheServerPreferences.s_Constants = new CacheServerPreferences.Constants(); } if (!InternalEditorUtility.HasTeamLicense()) { GUILayout.Label(EditorGUIUtility.TempContent("You need to have a Pro or Team license to use the cache server.", EditorGUIUtility.GetHelpIcon(MessageType.Warning)), EditorStyles.helpBox, new GUILayoutOption[0]); } using (new EditorGUI.DisabledScope(!InternalEditorUtility.HasTeamLicense())) { if (!CacheServerPreferences.s_PrefsLoaded) { CacheServerPreferences.ReadPreferences(); if (CacheServerPreferences.s_CacheServerMode != CacheServerPreferences.CacheServerMode.Disabled && CacheServerPreferences.s_ConnectionState == CacheServerPreferences.ConnectionState.Unknown) { if (InternalEditorUtility.CanConnectToCacheServer()) { CacheServerPreferences.s_ConnectionState = CacheServerPreferences.ConnectionState.Success; } else { CacheServerPreferences.s_ConnectionState = CacheServerPreferences.ConnectionState.Failure; } } CacheServerPreferences.s_PrefsLoaded = true; } EditorGUI.BeginChangeCheck(); string commandLineRemoteAddressOverride = CacheServerPreferences.GetCommandLineRemoteAddressOverride(); if (commandLineRemoteAddressOverride != null) { EditorGUILayout.HelpBox("Cache Server preferences cannot be modified because a remote address was specified via command line argument. To modify Cache Server preferences, restart Unity without the -CacheServerIPAddress command line argument.", MessageType.Info, true); } using (new EditorGUI.DisabledScope(commandLineRemoteAddressOverride != null)) { CacheServerPreferences.CacheServerMode cacheServerMode = (commandLineRemoteAddressOverride == null) ? CacheServerPreferences.s_CacheServerMode : CacheServerPreferences.CacheServerMode.Remote; CacheServerPreferences.s_CacheServerMode = (CacheServerPreferences.CacheServerMode)EditorGUILayout.EnumPopup("Cache Server Mode", cacheServerMode, new GUILayoutOption[0]); } if (CacheServerPreferences.s_CacheServerMode == CacheServerPreferences.CacheServerMode.Remote) { using (new EditorGUI.DisabledScope(commandLineRemoteAddressOverride != null)) { string text = (commandLineRemoteAddressOverride == null) ? CacheServerPreferences.s_CacheServerIPAddress : commandLineRemoteAddressOverride; CacheServerPreferences.s_CacheServerIPAddress = EditorGUILayout.DelayedTextField("IP Address", text, new GUILayoutOption[0]); if (GUI.changed) { CacheServerPreferences.s_ConnectionState = CacheServerPreferences.ConnectionState.Unknown; } } GUILayout.Space(5f); if (GUILayout.Button("Check Connection", new GUILayoutOption[] { GUILayout.Width(150f) })) { if (InternalEditorUtility.CanConnectToCacheServer()) { CacheServerPreferences.s_ConnectionState = CacheServerPreferences.ConnectionState.Success; } else { CacheServerPreferences.s_ConnectionState = CacheServerPreferences.ConnectionState.Failure; } } GUILayout.Space(-25f); CacheServerPreferences.ConnectionState connectionState = CacheServerPreferences.s_ConnectionState; if (connectionState != CacheServerPreferences.ConnectionState.Success) { if (connectionState != CacheServerPreferences.ConnectionState.Failure) { if (connectionState == CacheServerPreferences.ConnectionState.Unknown) { GUILayout.Space(44f); } } else { EditorGUILayout.HelpBox("Connection failed.", MessageType.Warning, false); } } else { EditorGUILayout.HelpBox("Connection successful.", MessageType.Info, false); } } else if (CacheServerPreferences.s_CacheServerMode == CacheServerPreferences.CacheServerMode.Local) { CacheServerPreferences.s_LocalCacheServerSize = EditorGUILayout.IntSlider(CacheServerPreferences.Styles.maxCacheSize, CacheServerPreferences.s_LocalCacheServerSize, 1, 200, new GUILayoutOption[0]); CacheServerPreferences.s_EnableCustomPath = EditorGUILayout.Toggle(CacheServerPreferences.Styles.customCacheLocation, CacheServerPreferences.s_EnableCustomPath, new GUILayoutOption[0]); if (CacheServerPreferences.s_EnableCustomPath) { GUIStyle miniButton = EditorStyles.miniButton; GUILayout.BeginHorizontal(new GUILayoutOption[0]); EditorGUILayout.PrefixLabel(CacheServerPreferences.Styles.cacheFolderLocation, miniButton); Rect rect = GUILayoutUtility.GetRect(GUIContent.none, miniButton); GUIContent content = (!string.IsNullOrEmpty(CacheServerPreferences.s_CachePath)) ? new GUIContent(CacheServerPreferences.s_CachePath) : CacheServerPreferences.Styles.browse; if (EditorGUI.DropdownButton(rect, content, FocusType.Passive, miniButton)) { string folder = CacheServerPreferences.s_CachePath; string text2 = EditorUtility.OpenFolderPanel(CacheServerPreferences.Styles.browseCacheLocation.text, folder, ""); if (!string.IsNullOrEmpty(text2)) { if (LocalCacheServer.CheckValidCacheLocation(text2)) { CacheServerPreferences.s_CachePath = text2; CacheServerPreferences.WritePreferences(); } else { EditorUtility.DisplayDialog("Invalid Cache Location", string.Format("The directory {0} contains some files which don't look like Unity Cache server files. Please delete the directory contents or choose another directory.", text2), "OK"); } GUIUtility.ExitGUI(); } } GUILayout.EndHorizontal(); } else { CacheServerPreferences.s_CachePath = ""; } bool flag = LocalCacheServer.CheckCacheLocationExists(); if (flag) { GUIContent label = EditorGUIUtility.TrTextContent("Cache size is unknown", null, null); if (CacheServerPreferences.s_LocalCacheServerUsedSize != -1L) { label = EditorGUIUtility.TextContent("Cache size is " + EditorUtility.FormatBytes(CacheServerPreferences.s_LocalCacheServerUsedSize)); } GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUIStyle miniButton2 = EditorStyles.miniButton; EditorGUILayout.PrefixLabel(label, miniButton2); Rect rect2 = GUILayoutUtility.GetRect(GUIContent.none, miniButton2); if (EditorGUI.Button(rect2, CacheServerPreferences.Styles.enumerateCache, miniButton2)) { CacheServerPreferences.s_LocalCacheServerUsedSize = ((!LocalCacheServer.CheckCacheLocationExists()) ? 0L : FileUtil.GetDirectorySize(LocalCacheServer.GetCacheLocation())); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUIContent blankContent = EditorGUIUtility.blankContent; EditorGUILayout.PrefixLabel(blankContent, miniButton2); Rect rect3 = GUILayoutUtility.GetRect(GUIContent.none, miniButton2); if (EditorGUI.Button(rect3, CacheServerPreferences.Styles.cleanCache, miniButton2)) { LocalCacheServer.Clear(); CacheServerPreferences.s_LocalCacheServerUsedSize = 0L; } GUILayout.EndHorizontal(); } else { EditorGUILayout.HelpBox("Local cache directory does not exist - please check that you can access the cache folder and are able to write to it", MessageType.Warning, false); CacheServerPreferences.s_LocalCacheServerUsedSize = -1L; } GUILayout.Label(CacheServerPreferences.Styles.cacheFolderLocation.text + ":", new GUILayoutOption[0]); GUILayout.Label(LocalCacheServer.GetCacheLocation(), CacheServerPreferences.s_Constants.cacheFolderLocation, new GUILayoutOption[0]); } if (EditorGUI.EndChangeCheck()) { CacheServerPreferences.s_HasPendingChanges = true; } if (CacheServerPreferences.s_HasPendingChanges && GUIUtility.hotControl == 0) { CacheServerPreferences.s_HasPendingChanges = false; CacheServerPreferences.WritePreferences(); CacheServerPreferences.ReadPreferences(); } } }
private void DoCacheServerSettings() { GUILayout.Space(10); GUILayout.Label(Content.cacheServer, EditorStyles.boldLabel); var overrideAddress = CacheServerPreferences.GetCommandLineRemoteAddressOverride(); if (overrideAddress != null) { EditorGUILayout.HelpBox("Cache Server remote address forced via command line argument. To use the cache server address specified here please restart Unity without the -CacheServerIPAddress command line argument.", MessageType.Info, true); } int index = Mathf.Clamp((int)m_CacheServerMode.intValue, 0, cacheServerModePopupList.Length - 1); CreatePopupMenu(Content.mode.text, cacheServerModePopupList, index, SetCacheServerMode); if (index != (int)CacheServerMode.Disabled) { bool isCacheServerEnabled = true; if (index == (int)CacheServerMode.AsPreferences) { if (CacheServerPreferences.IsCacheServerV2Enabled) { var cacheServerIP = CacheServerPreferences.CachesServerV2Address; cacheServerIP = string.IsNullOrEmpty(cacheServerIP) ? "Not set in preferences" : cacheServerIP; EditorGUILayout.HelpBox(cacheServerIP, MessageType.None, false); } else { isCacheServerEnabled = false; EditorGUILayout.HelpBox("Disabled", MessageType.None, false); } } if (isCacheServerEnabled) { m_CacheServerList.DoLayoutList(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Check Connection", GUILayout.Width(150))) { if (InternalEditorUtility.CanConnectToCacheServer()) { m_CacheServerConnectionState = CacheServerConnectionState.Success; } else { m_CacheServerConnectionState = CacheServerConnectionState.Failure; } } GUILayout.Space(25); switch (m_CacheServerConnectionState) { case CacheServerConnectionState.Success: EditorGUILayout.HelpBox("Connection successful.", MessageType.Info, true); break; case CacheServerConnectionState.Failure: EditorGUILayout.HelpBox("Connection failed.", MessageType.Warning, true); break; case CacheServerConnectionState.Unknown: GUILayout.Space(44); break; } EditorGUILayout.EndHorizontal(); } } }