using UdpKit; using UnityEngine; using Process = System.Diagnostics.Process; public partial class BoltDebugStart : BoltInternal.GlobalEventListenerBase { UdpEndPoint _serverEndPoint; UdpEndPoint _clientEndPoint; void Awake() { DontDestroyOnLoad(gameObject); Application.targetFrameRate = 60; } void Start() { #if UNITY_EDITOR_OSX Process p = new Process(); p.StartInfo.FileName = "osascript"; p.StartInfo.Arguments = @"-e 'tell application """ + UnityEditor.PlayerSettings.productName + @""" activate end tell'"; p.Start(); #endif BoltRuntimeSettings settings = BoltRuntimeSettings.instance; _serverEndPoint = new UdpEndPoint(UdpIPv4Address.Localhost, (ushort)settings.debugStartPort); _clientEndPoint = new UdpEndPoint(UdpIPv4Address.Localhost, 0); BoltConfig cfg; cfg = settings.GetConfigCopy(); cfg.connectionTimeout = 60000000; cfg.connectionRequestTimeout = 500; cfg.connectionRequestAttempts = 1000; if (string.IsNullOrEmpty(settings.debugStartMapName) == false) { if (BoltDebugStartSettings.DebugStartIsServer) { BoltLauncher.StartServer(_serverEndPoint, cfg); } else if (BoltDebugStartSettings.DebugStartIsClient) { BoltLauncher.StartClient(_clientEndPoint, cfg); } BoltDebugStartSettings.PositionWindow(); } else { BoltLog.Error("No map found to start from"); } } public override void BoltStartFailed() { BoltLog.Error("Failed to start debug mode"); } public override void BoltStartDone() { if (BoltNetwork.IsServer) { BoltNetwork.LoadScene(BoltRuntimeSettings.instance.debugStartMapName); } else { BoltNetwork.Connect((ushort)BoltRuntimeSettings.instance.debugStartPort); } } public override void SceneLoadLocalDone(string map) { Destroy(gameObject); } }