private void StopSession()
    {
        if (_clientApplication == null)
        {
            return;
        }

        _serverApplication?.Dispose();
        _clientApplication?.Dispose();

        _serverApplication = null;
        _clientApplication = null;

        _synchronizationData.Clear();

        OnSessionEnd();
    }
Exemple #2
0
        /// <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;
            }
        }