123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- // ----------------------------------------------------------------------------
- // <copyright file="ServerSettings.cs" company="Exit Games GmbH">
- // PhotonNetwork Framework for Unity - Copyright (C) 2018 Exit Games GmbH
- // </copyright>
- // <summary>
- // ScriptableObject defining a server setup. An instance is created as <b>PhotonServerSettings</b>.
- // </summary>
- // <author>developer@exitgames.com</author>
- // ----------------------------------------------------------------------------
- namespace Photon.Pun
- {
- using System;
- using System.Collections.Generic;
- using ExitGames.Client.Photon;
- using Photon.Realtime;
- using UnityEngine;
- /// <summary>
- /// Collection of connection-relevant settings, used internally by PhotonNetwork.ConnectUsingSettings.
- /// </summary>
- /// <remarks>
- /// Includes the AppSettings class from the Realtime APIs plus some other, PUN-relevant, settings.</remarks>
- [Serializable]
- [HelpURL("https://doc.photonengine.com/en-us/pun/v2/getting-started/initial-setup")]
- public class ServerSettings : ScriptableObject
- {
- [Tooltip("Core Photon Server/Cloud settings.")]
- public AppSettings AppSettings;
- /// <summary>Region that will be used by the Editor and Development Builds. This ensures all users will be in the same region for testing.</summary>
- [Tooltip("Developer build override for Best Region.")]
- public string DevRegion;
- [Tooltip("Log output by PUN.")]
- public PunLogLevel PunLogging = PunLogLevel.ErrorsOnly;
- [Tooltip("Logs additional info for debugging.")]
- public bool EnableSupportLogger;
- [Tooltip("Enables apps to keep the connection without focus.")]
- public bool RunInBackground = true;
- [Tooltip("Simulates an online connection.\nPUN can be used as usual.")]
- public bool StartInOfflineMode;
- [Tooltip("RPC name list.\nUsed as shortcut when sending calls.")]
- public List<string> RpcList = new List<string>(); // set by scripts and or via Inspector
- #if UNITY_EDITOR
- public bool DisableAutoOpenWizard;
- public bool ShowSettings;
- public bool DevRegionSetOnce;
- #endif
- /// <summary>Sets appid and region code in the AppSettings. Used in Editor.</summary>
- public void UseCloud(string cloudAppid, string code = "")
- {
- this.AppSettings.AppIdRealtime = cloudAppid;
- this.AppSettings.Server = null;
- this.AppSettings.FixedRegion = string.IsNullOrEmpty(code) ? null : code;
- }
- /// <summary>Checks if a string is a Guid by attempting to create one.</summary>
- /// <param name="val">The potential guid to check.</param>
- /// <returns>True if new Guid(val) did not fail.</returns>
- public static bool IsAppId(string val)
- {
- try
- {
- new Guid(val);
- }
- catch
- {
- return false;
- }
- return true;
- }
- /// <summary>Gets the "best region summary" from the preferences.</summary>
- /// <value>The best region code in preferences.</value>
- public static string BestRegionSummaryInPreferences
- {
- get { return PhotonNetwork.BestRegionSummaryInPreferences; }
- }
- /// <summary>Sets the "best region summary" in the preferences to null. On next start, the client will ping all available.</summary>
- public static void ResetBestRegionCodeInPreferences()
- {
- PhotonNetwork.BestRegionSummaryInPreferences = null;
- }
- /// <summary>String summary of the AppSettings.</summary>
- public override string ToString()
- {
- return "ServerSettings: " + this.AppSettings.ToStringFull();
- }
- }
- }
|