public void SelectRegion(int index) { PhotonNetwork.PhotonServerSettings.ServerAddress = cloudServers[index].address; CloudRegionCode region = new CloudRegionCode(); switch (index) { case 0: region = CloudRegionCode.asia; break; case 1: region = CloudRegionCode.us; break; case 2: region = CloudRegionCode.eu; break; case 3: region = CloudRegionCode.jp; break; case 4: region = CloudRegionCode.au; break; } PhotonNetwork.OverrideBestCloudServer(region); GameManager.instance.network.Connect(); Application.LoadLevel("2_Lobby"); }
public static CloudRegionCode Parse(string codeAsString) { codeAsString = codeAsString.ToLower(); CloudRegionCode cloudRegionCode = CloudRegionCode.none; if (Enum.IsDefined(typeof(CloudRegionCode), (object)codeAsString)) { cloudRegionCode = (CloudRegionCode)Enum.Parse(typeof(CloudRegionCode), codeAsString); } return(cloudRegionCode); }
public static CloudRegionCode Parse(string codeAsString) { codeAsString = codeAsString.ToLower(); CloudRegionCode result = CloudRegionCode.none; if (Enum.IsDefined(typeof(CloudRegionCode), codeAsString)) { result = (CloudRegionCode)((int)Enum.Parse(typeof(CloudRegionCode), codeAsString)); } return(result); }
// Token: 0x0600B239 RID: 45625 RVA: 0x004164D5 File Offset: 0x004146D5 internal static void NFCANDIBPLB(CloudRegionCode DPNHODJHGJL) { if (DPNHODJHGJL == CloudRegionCode.asia) { PlayerPrefs.DeleteKey("player.goldcrystal"); } else { PlayerPrefs.SetString("_Distortion", DPNHODJHGJL.ToString()); } }
// Token: 0x0600B25B RID: 45659 RVA: 0x00416B6C File Offset: 0x00414D6C internal static void GGLNANJIJLG(CloudRegionCode DPNHODJHGJL) { if (DPNHODJHGJL == CloudRegionCode.usw) { PlayerPrefs.DeleteKey("health"); } else { PlayerPrefs.SetString("Reading preview file failed! Make sure JSON file is filled properly and/or file exists: \"{0}\"", DPNHODJHGJL.ToString()); } }
// Token: 0x0600B258 RID: 45656 RVA: 0x00416AEE File Offset: 0x00414CEE internal static void LEFACILBIGM(CloudRegionCode DPNHODJHGJL) { if (DPNHODJHGJL == CloudRegionCode.asia) { PlayerPrefs.DeleteKey("EventSystem"); } else { PlayerPrefs.SetString("IDInputField", DPNHODJHGJL.ToString()); } }
// Token: 0x0600B274 RID: 45684 RVA: 0x004171CD File Offset: 0x004153CD internal static void MEBNOLCEOFA(CloudRegionCode DPNHODJHGJL) { if (DPNHODJHGJL == CloudRegionCode.asia) { PlayerPrefs.DeleteKey("OnPressRight"); } else { PlayerPrefs.SetString("settings.shaders.bloomintencity", DPNHODJHGJL.ToString()); } }
// Token: 0x06003D00 RID: 15616 RVA: 0x001343E4 File Offset: 0x001327E4 internal IEnumerator PingAvailableRegionsCoroutine(bool connectToBest) { while (PhotonNetwork.networkingPeer.AvailableRegions == null) { if (PhotonNetwork.connectionStateDetailed != ClientState.ConnectingToNameServer && PhotonNetwork.connectionStateDetailed != ClientState.ConnectedToNameServer) { UnityEngine.Debug.LogError("Call ConnectToNameServer to ping available regions."); yield break; } UnityEngine.Debug.Log(string.Concat(new object[] { "Waiting for AvailableRegions. State: ", PhotonNetwork.connectionStateDetailed, " Server: ", PhotonNetwork.Server, " PhotonNetwork.networkingPeer.AvailableRegions ", PhotonNetwork.networkingPeer.AvailableRegions != null })); yield return(new WaitForSeconds(0.25f)); } if (PhotonNetwork.networkingPeer.AvailableRegions == null || PhotonNetwork.networkingPeer.AvailableRegions.Count == 0) { UnityEngine.Debug.LogError("No regions available. Are you sure your appid is valid and setup?"); yield break; } PhotonPingManager pingManager = new PhotonPingManager(); foreach (Region region in PhotonNetwork.networkingPeer.AvailableRegions) { PhotonHandler.SP.StartCoroutine(pingManager.PingSocket(region)); } while (!pingManager.Done) { yield return(new WaitForSeconds(0.1f)); } Region best = pingManager.BestRegion; PhotonHandler.BestRegionCodeInPreferences = best.Code; UnityEngine.Debug.Log(string.Concat(new object[] { "Found best region: '", best.Code, "' ping: ", best.Ping, ". Calling ConnectToRegionMaster() is: ", connectToBest })); if (connectToBest) { PhotonNetwork.networkingPeer.ConnectToRegionMaster(best.Code); } yield break; }
public void ConnectToRegion(CloudRegionCode code) { if (PhotonNetwork.connected) { PhotonNetwork.Disconnect(); } PhotonNetwork.offlineMode = false; connecting = true; PhotonNetwork.ConnectToRegion(code, version); PhotonNetwork.sendRate = 30; PhotonNetwork.sendRateOnSerialize = 30; }
private void OnUpdate() { if (this.lastUsedRegion != ServerSettings.BestRegionCodeInPreferences) { this.lastUsedRegion = ServerSettings.BestRegionCodeInPreferences; Repaint(); } // this won't repaint when we disconnect but it's "good enough" to update when we connect and switch servers. if (Application.isPlaying && this.lastServer != PhotonNetwork.Server) { this.lastServer = PhotonNetwork.Server; Repaint(); } }
public virtual void OnClickConnectToRegion() { var networkManager = SimplePhotonNetworkManager.Singleton; CloudRegionCode regionCode = CloudRegionCode.none; if (dropdownRegion != null && regions.TryGetValue(dropdownRegion.value, out regionCode)) { networkManager.region = regionCode; networkManager.ConnectToRegion(); } else { networkManager.ConnectToBestCloudServer(); } }
public static string RegionToString(CloudRegionCode code) { switch (code) { /// <summary>European servers in Amsterdam.</summary> case CloudRegionCode.eu: return("Europe"); /// <summary>US servers (East Coast).</summary> case CloudRegionCode.us: return("US East"); /// <summary>Asian servers in Singapore.</summary> case CloudRegionCode.asia: return("Asia"); /// <summary>Japanese servers in Tokyo.</summary> case CloudRegionCode.jp: return("Japan"); /// <summary>Australian servers in Melbourne.</summary> case CloudRegionCode.au: return("Australia"); ///<summary>USA West, San José, usw</summary> case CloudRegionCode.usw: return("US West"); ///<summary>South America , Sao Paulo, sa</summary> case CloudRegionCode.sa: return("South America"); ///<summary>Canada East, Montreal, cae</summary> case CloudRegionCode.cae: return("Canada East"); ///<summary>South Korea, Seoul, kr</summary> case CloudRegionCode.kr: return("South Korea"); ///<summary>India, Chennai, in</summary> case CloudRegionCode.@in: return("India"); default: goto case CloudRegionCode.eu; } }
public void ChangeServer(int region) { if (PhotonNetwork.connected) { PhotonNetwork.Disconnect(); WaitForConnectToNew = true; ServerHost = bl_CoopUtils.IntToRegionCode(region); Debug.LogWarning("Wait for the current server disconnect and reconnect to new."); return; } //If disconect, connect again to the select region PhotonNetwork.ConnectToRegion(bl_CoopUtils.IntToRegionCode(region), GameVersion); ServerHost = bl_CoopUtils.IntToRegionCode(region); WaitForConnectToNew = false; this.GetComponent <bl_LobbyUI>().ChangeWindow(6); }
internal IEnumerator PingAvailableRegionsCoroutine(bool connectToBest) { BestRegionCodeCurrently = CloudRegionCode.none; while (PhotonNetwork.networkingPeer.AvailableRegions == null) { if (PhotonNetwork.connectionStateDetailed != PeerState.ConnectingToNameServer && PhotonNetwork.connectionStateDetailed != PeerState.ConnectedToNameServer) { Debug.LogError("Call ConnectToNameServer to ping available regions."); yield break; // break if we don't connect to the nameserver at all } Debug.Log("Waiting for AvailableRegions. State: " + PhotonNetwork.connectionStateDetailed + " Server: " + PhotonNetwork.Server + " PhotonNetwork.networkingPeer.AvailableRegions " + (PhotonNetwork.networkingPeer.AvailableRegions != null)); yield return(new WaitForSeconds(0.25f)); // wait until pinging finished (offline mode won't ping) } if (PhotonNetwork.networkingPeer.AvailableRegions == null || PhotonNetwork.networkingPeer.AvailableRegions.Count == 0) { Debug.LogError("No regions available. Are you sure your appid is valid and setup?"); yield break; // break if we don't get regions at all } PhotonPingManager pingManager = new PhotonPingManager(); foreach (Region region in PhotonNetwork.networkingPeer.AvailableRegions) { SP.StartCoroutine(pingManager.PingSocket(region)); } while (!pingManager.Done) { yield return(new WaitForSeconds(0.1f)); // wait until pinging finished (offline mode won't ping) } Region best = pingManager.BestRegion; PhotonHandler.BestRegionCodeCurrently = best.Code; PhotonHandler.BestRegionCodeInPreferences = best.Code; Debug.Log("Found best region: " + best.Code + " ping: " + best.Ping + ". Calling ConnectToRegionMaster() is: " + connectToBest); if (connectToBest) { PhotonNetwork.networkingPeer.ConnectToRegionMaster(best.Code); } }
internal IEnumerator PingAvailableRegionsCoroutine(bool connectToBest) { PhotonHandler.BestRegionCodeCurrently = CloudRegionCode.none; while (PhotonNetwork.networkingPeer.AvailableRegions == null) { if (PhotonNetwork.connectionStateDetailed != PeerStates.ConnectingToNameServer && PhotonNetwork.connectionStateDetailed != PeerStates.ConnectedToNameServer) { UnityEngine.Debug.LogError("Call ConnectToNameServer to ping available regions."); yield break; } UnityEngine.Debug.Log("Waiting for AvailableRegions. State: " + PhotonNetwork.connectionStateDetailed + " Server: " + PhotonNetwork.Server + " PhotonNetwork.networkingPeer.AvailableRegions " + (PhotonNetwork.networkingPeer.AvailableRegions != null)); yield return((object)new WaitForSeconds(0.25f)); } if (PhotonNetwork.networkingPeer.AvailableRegions == null || PhotonNetwork.networkingPeer.AvailableRegions.Count == 0) { UnityEngine.Debug.LogError("No regions available. Are you sure your appid is valid and setup?"); } else { PhotonPingManager pingManager = new PhotonPingManager(); List <Region> .Enumerator enumerator = PhotonNetwork.networkingPeer.AvailableRegions.GetEnumerator(); try { while (enumerator.MoveNext()) { Region region = enumerator.Current; PhotonHandler.SP.StartCoroutine(pingManager.PingSocket(region)); } } finally { ((IDisposable)enumerator).Dispose(); } while (!pingManager.Done) { yield return((object)new WaitForSeconds(0.1f)); } Region best = pingManager.BestRegion; PhotonHandler.BestRegionCodeCurrently = best.Code; PhotonHandler.BestRegionCodeInPreferences = best.Code; UnityEngine.Debug.Log("Found best region: " + best.Code + " ping: " + best.Ping + ". Calling ConnectToRegionMaster() is: " + connectToBest); if (connectToBest) { PhotonNetwork.networkingPeer.ConnectToRegionMaster(best.Code); } } }
public static string GetMasterAddress(CloudRegionCode code) { switch (code) { case CloudRegionCode.us: return("app-us.exitgamescloud.com"); case CloudRegionCode.eu: return("app-eu.exitgamescloud.com"); case CloudRegionCode.jp: return("app-jp.exitgamescloud.com"); case CloudRegionCode.asia: return("app-asia.exitgamescloud.com"); } return(string.Empty); }
public void PrevRegion() { int targetIndex = AvailableRegions.IndexOf(selectedRegion) - 1; if (targetIndex < 0) { targetIndex = AvailableRegions.Count - 1; } selectedRegion = AvailableRegions[targetIndex]; CampaignSelectionManager.Instanse.RoomSelector.RegionLabel.text = "Region: " + RegionToString(selectedRegion); if (PhotonNetwork.connected) { PhotonNetwork.Disconnect(); } CampaignSelectionManager.Instanse.RoomSelector.CleanRoomList(); launcherPanel.ProgressLabel.text = "Disconnected!"; }
public void NextRegion() { int targetIndex = AvailableRegions.IndexOf(SelectedRegion) + 1; if (targetIndex > AvailableRegions.Count - 1) { targetIndex = 0; } SelectedRegion = AvailableRegions[targetIndex]; CampaignSelectionManager.Instanse.roomSelector.regionLabel.text = "Region: " + RegionToString(SelectedRegion); if (PhotonNetwork.connected) { PhotonNetwork.Disconnect(); } CampaignSelectionManager.Instanse.roomSelector.CleanRoomList(); launcherPanel.progressLabel.text = "Disconnected!"; }
public static bool ConnectToBestCloudServer(string gameVersion) { if (PhotonServerSettings == null) { Debug.LogError("Can't connect: Loading settings failed. ServerSettings asset must be in any 'Resources' folder as: PhotonServerSettings"); return(false); } if (PhotonServerSettings.HostType == ServerSettings.HostingOption.OfflineMode) { return(ConnectUsingSettings(gameVersion)); } networkingPeer.IsInitialConnect = true; networkingPeer.SetApp(PhotonServerSettings.AppID, gameVersion); CloudRegionCode bestRegionCodeInPreferences = PhotonHandler.BestRegionCodeInPreferences; if (bestRegionCodeInPreferences != CloudRegionCode.none) { Debug.Log("Best region found in PlayerPrefs. Connecting to: " + bestRegionCodeInPreferences); return(networkingPeer.ConnectToRegionMaster(bestRegionCodeInPreferences)); } return(networkingPeer.ConnectToNameServer()); }
private static string RegionToString(CloudRegionCode code) { switch (code) { case CloudRegionCode.eu: return("Europe"); case CloudRegionCode.us: return("US East"); case CloudRegionCode.asia: return("Asia"); case CloudRegionCode.jp: return("Japan"); case CloudRegionCode.au: return("Australia"); case CloudRegionCode.usw: return("US West"); case CloudRegionCode.sa: return("South America"); case CloudRegionCode.cae: return("Canada East"); case CloudRegionCode.kr: return("South Korea"); case CloudRegionCode.@in: return("India"); default: goto case CloudRegionCode.eu; } }
/// <summary> /// /// </summary> /// <param name="code"></param> /// <returns></returns> public static int RegionCodeToInt(CloudRegionCode code) { switch (code) { case CloudRegionCode.asia: return(0); case CloudRegionCode.au: return(1); case CloudRegionCode.eu: return(2); case CloudRegionCode.jp: return(3); case CloudRegionCode.us: return(4); case CloudRegionCode.cae: return(5); case CloudRegionCode.sa: return(6); case CloudRegionCode.usw: return(7); case CloudRegionCode.@in: return(8); case CloudRegionCode.kr: return(9); } return(5); // equal a none }
/// <summary> /// /// </summary> /// <param name="code"></param> /// <returns></returns> public static string RegionToString(CloudRegionCode code) { switch (code) { case CloudRegionCode.asia: return("ASIA"); case CloudRegionCode.au: return("AUSTRALIA"); case CloudRegionCode.eu: return("EUROPE"); case CloudRegionCode.jp: return("JAPAN"); case CloudRegionCode.us: return("USA"); case CloudRegionCode.sa: return("SOUTH AMERICA"); case CloudRegionCode.cae: return("CANADA"); case CloudRegionCode.usw: return("USA WEST"); case CloudRegionCode.@in: return("INDIA"); case CloudRegionCode.kr: return("SOUTH KOREA"); } return("NONE"); // equal a none }
public void UseCloud(string cloudAppid, CloudRegionCode code) { this.HostType = HostingOption.PhotonCloud; this.AppID = cloudAppid; this.PreferredRegion = code; }
// Token: 0x0600B7FA RID: 47098 RVA: 0x00436A71 File Offset: 0x00434C71 public Region(CloudRegionCode JFNKDGKEAEA, string GOLPAHODNFE, string FJPNDMCELJN) { this.Code = JFNKDGKEAEA; this.Cluster = GOLPAHODNFE; this.HostAndPort = FJPNDMCELJN; }
// Token: 0x0600B7DB RID: 47067 RVA: 0x004361CD File Offset: 0x004343CD public Region(CloudRegionCode JFNKDGKEAEA) { this.Code = JFNKDGKEAEA; this.Cluster = JFNKDGKEAEA.ToString(); }
/// <summary>Overwrites the region that is used for ConnectToBestCloudServer(string gameVersion).</summary> /// <remarks> /// This will overwrite the result of pinging all cloud servers. /// Use this to allow your users to save a manually selected region in the prefs. /// </remarks> public static void OverrideBestCloudServer(CloudRegionCode region) { PhotonHandler.BestRegionCodeInPreferences = region; }
// Token: 0x06003E47 RID: 15943 RVA: 0x00139575 File Offset: 0x00137975 public void UseCloud(string cloudAppid, CloudRegionCode code) { this.HostType = ServerSettings.HostingOption.PhotonCloud; this.AppID = cloudAppid; this.PreferredRegion = code; }
/// <summary> /// /// </summary> /// <param name="code"></param> /// <returns></returns> public static int RegionCodeToInt(CloudRegionCode code) { switch (code) { case CloudRegionCode.asia: return 0; case CloudRegionCode.au: return 1; case CloudRegionCode.eu: return 2; case CloudRegionCode.jp: return 3; case CloudRegionCode.us: return 4; } return 5; // equal a none }
/// <summary> /// /// </summary> /// <param name="code"></param> /// <returns></returns> public static string RegionToString(CloudRegionCode code) { switch (code) { case CloudRegionCode.asia: return "ASIA"; case CloudRegionCode.au: return "AUSTRALIA"; case CloudRegionCode.eu: return "EUROPE"; case CloudRegionCode.jp: return "JAPAN"; case CloudRegionCode.us: return "USA"; } return "NONE"; // equal a none }
public void OnEnable() { this.lastUsedRegion = ServerSettings.BestRegionCodeInPreferences; EditorApplication.update += this.OnUpdate; }
protected virtual void OnGuiSetupCloudAppId() { GUILayout.Label(CurrentLang.AppIdLabel); GUILayout.BeginHorizontal(); this.cloudAppId = EditorGUILayout.TextField(this.cloudAppId); open = GUILayout.Toggle(open, HelpIcon, GUIStyle.none, GUILayout.ExpandWidth(false)); GUILayout.EndHorizontal(); if (open) { GUILayout.Label(CurrentLang.AppIdInfoLabel); } EditorGUILayout.Separator(); GUILayout.Label(CurrentLang.CloudRegionLabel); GUILayout.BeginHorizontal(); int toolbarValue = GUILayout.Toolbar((int)selectedRegion, CloudServerRegionNames); // the enum CloudRegionCode is converted into a string[] in init (toolbar can't use enum) helpRegion = GUILayout.Toggle(helpRegion, HelpIcon, GUIStyle.none, GUILayout.ExpandWidth(false)); GUILayout.EndHorizontal(); if (helpRegion) { GUILayout.Label(CurrentLang.RegionalServersInfo); } PhotonEditor.selectedRegion = (CloudRegionCode)toolbarValue; EditorGUILayout.Separator(); GUILayout.BeginHorizontal(); if (GUILayout.Button(CurrentLang.CancelButton)) { GUIUtility.keyboardControl = 0; this.ReApplySettingsToWindow(); } if (GUILayout.Button(CurrentLang.SaveButton)) { GUIUtility.keyboardControl = 0; this.cloudAppId = this.cloudAppId.Trim(); PhotonEditor.Current.UseCloud(this.cloudAppId); PhotonEditor.Current.PreferredRegion = PhotonEditor.selectedRegion; PhotonEditor.Current.HostType = (PhotonEditor.Current.PreferredRegion == CloudRegionCode.none) ? ServerSettings.HostingOption.BestRegion : ServerSettings.HostingOption.PhotonCloud; PhotonEditor.Save(); Inspect(); EditorUtility.DisplayDialog(CurrentLang.SettingsSavedTitle, CurrentLang.SettingsSavedMessage, CurrentLang.OkButton); } GUILayout.EndHorizontal(); GUILayout.Space(20); GUILayout.Label(CurrentLang.SetupOwnServerLabel); if (GUILayout.Button(CurrentLang.SelfHostSettingsButton)) { //this.photonAddress = ServerSettings.DefaultServerAddress; //this.photonPort = ServerSettings.DefaultMasterPort; this.photonSetupState = PhotonSetupStates.SetupSelfHosted; } EditorGUILayout.Separator(); GUILayout.Label(CurrentLang.OwnHostCloudCompareLabel); if (GUILayout.Button(CurrentLang.ComparisonPageButton)) { Application.OpenURL(UrlCompare); } }
public static Task <IResult <DisconnectCause, bool> > ConnectToRegion(CloudRegionCode region, string gameVersion, CancellationToken cancellationToken = default(CancellationToken)) { return(Connect(() => PhotonNetwork.ConnectToRegion(region, gameVersion), cancellationToken)); }
/// <summary> /// Connects you to a specific region's Master Server, using the Name Server to find the IP. /// </summary> /// <returns>If the operation could be sent. If false, no operation was sent.</returns> public bool ConnectToRegionMaster(CloudRegionCode region) { if (PhotonHandler.AppQuits) { Debug.LogWarning("Ignoring Connect() because app gets closed. If this is an error, check PhotonHandler.AppQuits."); return false; } IsUsingNameServer = true; this.CloudRegion = region; if (this.State == global::PeerState.ConnectedToNameServer) { AuthenticationValues auth = this.CustomAuthenticationValues ?? new AuthenticationValues() { UserId = this.PlayerName }; return this.OpAuthenticate(this.mAppId, this.mAppVersionPun, auth, region.ToString(), requestLobbyStatistics); } string address = this.NameServerAddress; if (!base.Connect(address, "ns")) { return false; } this.State = global::PeerState.ConnectingToNameServer; return true; }
public static void OverrideBestCloudServer(CloudRegionCode region) { }
internal IEnumerator PingAvailableRegionsCoroutine(bool connectToBest) { BestRegionCodeCurrently = CloudRegionCode.none; while (PhotonNetwork.networkingPeer.AvailableRegions == null) { if (PhotonNetwork.connectionStateDetailed != PeerState.ConnectingToNameServer && PhotonNetwork.connectionStateDetailed != PeerState.ConnectedToNameServer) { Debug.LogError("Call ConnectToNameServer to ping available regions."); yield break; // break if we don't connect to the nameserver at all } Debug.Log("Waiting for AvailableRegions. State: " + PhotonNetwork.connectionStateDetailed + " Server: " + PhotonNetwork.Server + " PhotonNetwork.networkingPeer.AvailableRegions " + (PhotonNetwork.networkingPeer.AvailableRegions != null)); yield return new WaitForSeconds(0.25f); // wait until pinging finished (offline mode won't ping) } if (PhotonNetwork.networkingPeer.AvailableRegions == null || PhotonNetwork.networkingPeer.AvailableRegions.Count == 0) { Debug.LogError("No regions available. Are you sure your appid is valid and setup?"); yield break; // break if we don't get regions at all } //#if !UNITY_EDITOR && (UNITY_ANDROID || UNITY_IPHONE) //#pragma warning disable 0162 // the library variant defines if we should use PUN's SocketUdp variant (at all) //if (PhotonPeer.NoSocket) //{ // if (PhotonNetwork.logLevel >= PhotonLogLevel.Informational) // { // Debug.Log("PUN disconnects to re-use native sockets for pining servers and to find the best."); // } // PhotonNetwork.Disconnect(); //} //#pragma warning restore 0162 //#endif PhotonPingManager pingManager = new PhotonPingManager(); foreach (Region region in PhotonNetwork.networkingPeer.AvailableRegions) { SP.StartCoroutine(pingManager.PingSocket(region)); } while (!pingManager.Done) { yield return new WaitForSeconds(0.1f); // wait until pinging finished (offline mode won't ping) } Region best = pingManager.BestRegion; PhotonHandler.BestRegionCodeCurrently = best.Code; PhotonHandler.BestRegionCodeInPreferences = best.Code; Debug.Log("Found best region: " + best.Code + " ping: " + best.Ping + ". Calling ConnectToRegionMaster() is: " + connectToBest); if (connectToBest) { PhotonNetwork.networkingPeer.ConnectToRegionMaster(best.Code); } }
internal IEnumerator PingAvailableRegionsCoroutine(bool connectToBest) { BestRegionCodeCurrently = CloudRegionCode.none; while (PhotonNetwork.networkingPeer.AvailableRegions == null) { if (PhotonNetwork.connectionStateDetailed != ClientState.ConnectingToNameServer && PhotonNetwork.connectionStateDetailed != ClientState.ConnectedToNameServer) { Debug.LogError("Call ConnectToNameServer to ping available regions."); yield break; // break if we don't connect to the nameserver at all } Debug.Log("Waiting for AvailableRegions. State: " + PhotonNetwork.connectionStateDetailed + " Server: " + PhotonNetwork.Server + " PhotonNetwork.networkingPeer.AvailableRegions " + (PhotonNetwork.networkingPeer.AvailableRegions != null)); yield return new WaitForSeconds(0.25f); // wait until pinging finished (offline mode won't ping) } if (PhotonNetwork.networkingPeer.AvailableRegions == null || PhotonNetwork.networkingPeer.AvailableRegions.Count == 0) { Debug.LogError("No regions available. Are you sure your appid is valid and setup?"); yield break; // break if we don't get regions at all } PhotonPingManager pingManager = new PhotonPingManager(); foreach (Region region in PhotonNetwork.networkingPeer.AvailableRegions) { SP.StartCoroutine(pingManager.PingSocket(region)); } while (!pingManager.Done) { yield return new WaitForSeconds(0.1f); // wait until pinging finished (offline mode won't ping) } Region best = pingManager.BestRegion; PhotonHandler.BestRegionCodeCurrently = best.Code; PhotonHandler.BestRegionCodeInPreferences = best.Code; Debug.Log("Found best region: " + best.Code + " ping: " + best.Ping + ". Calling ConnectToRegionMaster() is: " + connectToBest); if (connectToBest) { PhotonNetwork.networkingPeer.ConnectToRegionMaster(best.Code); } }
/// <summary> /// Connects you to a specific region's Master Server, using the Name Server to find the IP. /// </summary> /// <returns>If the operation could be sent. If false, no operation was sent.</returns> public bool ConnectToRegionMaster(CloudRegionCode region) { if (PhotonHandler.AppQuits) { Debug.LogWarning("Ignoring Connect() because app gets closed. If this is an error, check PhotonHandler.AppQuits."); return false; } IsUsingNameServer = true; this.CloudRegion = region; if (this.State == ClientState.ConnectedToNameServer) { return this.CallAuthenticate(); } this.SetupProtocol(ServerConnection.NameServer); if (!base.Connect(this.NameServerAddress, "ns", this.TokenForInit)) { return false; } this.State = ClientState.ConnectingToNameServer; return true; }
protected virtual void OnGuiSetupCloudAppId() { GUILayout.Label(CurrentLang.AppIdLabel); GUILayout.BeginHorizontal(); this.cloudAppId = EditorGUILayout.TextField(this.cloudAppId); open = GUILayout.Toggle(open, HelpIcon, GUIStyle.none, GUILayout.ExpandWidth(false)); GUILayout.EndHorizontal(); if (open) GUILayout.Label(CurrentLang.AppIdInfoLabel); EditorGUILayout.Separator(); GUILayout.Label(CurrentLang.CloudRegionLabel); GUILayout.BeginHorizontal(); int toolbarValue = GUILayout.Toolbar((int)selectedRegion, CloudServerRegionNames); // the enum CloudRegionCode is converted into a string[] in init (toolbar can't use enum) helpRegion = GUILayout.Toggle(helpRegion, HelpIcon, GUIStyle.none, GUILayout.ExpandWidth(false)); GUILayout.EndHorizontal(); if (helpRegion) GUILayout.Label(CurrentLang.RegionalServersInfo); PhotonEditor.selectedRegion = (CloudRegionCode)toolbarValue; EditorGUILayout.Separator(); GUILayout.BeginHorizontal(); if (GUILayout.Button(CurrentLang.CancelButton)) { GUIUtility.keyboardControl = 0; this.ReApplySettingsToWindow(); } if (GUILayout.Button(CurrentLang.SaveButton)) { GUIUtility.keyboardControl = 0; this.cloudAppId = this.cloudAppId.Trim(); PhotonEditor.Current.UseCloud(this.cloudAppId); PhotonEditor.Current.PreferredRegion = PhotonEditor.selectedRegion; PhotonEditor.Current.HostType = (PhotonEditor.Current.PreferredRegion == CloudRegionCode.none) ? ServerSettings.HostingOption.BestRegion : ServerSettings.HostingOption.PhotonCloud; PhotonEditor.Save(); Inspect(); EditorUtility.DisplayDialog(CurrentLang.SettingsSavedTitle, CurrentLang.SettingsSavedMessage, CurrentLang.OkButton); } GUILayout.EndHorizontal(); GUILayout.Space(20); GUILayout.Label(CurrentLang.SetupOwnServerLabel); if (GUILayout.Button(CurrentLang.SelfHostSettingsButton)) { //this.photonAddress = ServerSettings.DefaultServerAddress; //this.photonPort = ServerSettings.DefaultMasterPort; this.photonSetupState = PhotonSetupStates.SetupSelfHosted; } EditorGUILayout.Separator(); GUILayout.Label(CurrentLang.OwnHostCloudCompareLabel); if (GUILayout.Button(CurrentLang.ComparisonPageButton)) { Application.OpenURL(UrlCompare); } }
// Token: 0x06003E3F RID: 15935 RVA: 0x001393A2 File Offset: 0x001377A2 public Region(CloudRegionCode code, string regionCodeString, string address) { this.Code = code; this.Cluster = regionCodeString; this.HostAndPort = address; }
/// <summary> /// Connects to the Photon Cloud region of choice. /// </summary> public static bool ConnectToRegion(CloudRegionCode region, string gameVersion) { if (PhotonServerSettings == null) { Debug.LogError("Can't connect: ServerSettings asset must be in any 'Resources' folder as: " + PhotonNetwork.serverSettingsAssetFile); return false; } if (PhotonServerSettings.HostType == ServerSettings.HostingOption.OfflineMode) { return PhotonNetwork.ConnectUsingSettings(gameVersion); } networkingPeer.IsInitialConnect = true; networkingPeer.SetApp(PhotonServerSettings.AppID, gameVersion); if (region != CloudRegionCode.none) { Debug.Log("ConnectToRegion: " + region); return networkingPeer.ConnectToRegionMaster(region); } return false; }
// Token: 0x06003E3E RID: 15934 RVA: 0x00139380 File Offset: 0x00137780 public Region(CloudRegionCode code) { this.Code = code; this.Cluster = code.ToString(); }
/// <summary> /// Connects you to a specific region's Master Server, using the Name Server to find the IP. /// </summary> /// <returns>If the operation could be sent. If false, no operation was sent.</returns> public bool ConnectToRegionMaster(CloudRegionCode region) { if (PhotonHandler.AppQuits) { Debug.LogWarning("Ignoring Connect() because app gets closed. If this is an error, check PhotonHandler.AppQuits."); return false; } IsUsingNameServer = true; this.CloudRegion = region; if (this.State == global::PeerState.ConnectedToNameServer) { return this.OpAuthenticate(this.mAppId, this.mAppVersionPun, this.PlayerName, this.CustomAuthenticationValues, region.ToString()); } #if RHTTP string address = (this.UsedProtocol == ConnectionProtocol.RHttp) ? this.NameServerAddressHttp : this.NameServerAddress; #else string address = this.NameServerAddress; #endif if (!address.Contains(":")) { int port = 0; ProtocolToNameServerPort.TryGetValue(this.UsedProtocol, out port); address = string.Format("{0}:{1}", address, port); //Debug.Log("Server to connect to: "+ address + " settings protocol: " + PhotonNetwork.PhotonServerSettings.Protocol); } if (!base.Connect(address, "ns")) { return false; } this.State = global::PeerState.ConnectingToNameServer; return true; }
public void ChangeServer(int region) { if (PhotonNetwork.connected) { PhotonNetwork.Disconnect(); WaitForConnectToNew = true; ServerHost = bl_CoopUtils.IntToRegionCode(region); Debug.LogWarning("Wait for the current server disconnect and reconnect to new."); return; } //If disconect, connect again to the select region PhotonNetwork.ConnectToRegion(bl_CoopUtils.IntToRegionCode(region), GameVersion); ServerHost = bl_CoopUtils.IntToRegionCode(region); WaitForConnectToNew = false; this.GetComponent<bl_LobbyUI>().ChangeWindow(6); }