private void StopSession() { if (_clientApplication == null) { return; } _serverApplication?.Dispose(); _clientApplication?.Dispose(); _serverApplication = null; _clientApplication = null; _synchronizationData.Clear(); OnSessionEnd(); }
/// <summary> /// Registers a dispose caller for a default app instance /// </summary> /// <param name="app"></param> private static void RegisterDisposeCaller(ClientApplication app) { if (app.InEditMode) { #if UNITY_EDITOR UnityEditor.EditorApplication.playModeStateChanged += (c) => { if (c == UnityEditor.PlayModeStateChange.ExitingEditMode) { app.Dispose(); } }; #endif } else { var trigger = app.GameObject .GetComponent <UnisaveDisposalTrigger>(); trigger.OnDisposalTriggered += app.Dispose; } }