示例#1
0
        internal void Deactivate()
        {
            Debug.Assert(_state == AppStateState.Pushed);

            if (_isActive)
            {
                _console.TraceData(TraceEventType.Verbose, 0, "DeactivateState " + _fullName);

                try
                {
                    _substateManager?.DeactivateTopState();
                    _controllerEvents?.OnDeactivate();
                    _parentStateManager.InvokeStateDeactivated(_eventArgs);
                }
                finally
                {
                    if (_view != null)
                    {
                        _view.Interactable = false;
                    }

                    _isActive = false;
                }
            }
        }
示例#2
0
        internal void InvokeStateDeactivated(AppStateEventArgs args)
        {
            try
            {
                StateDeactivated?.Invoke(this, args);
            }
            catch (Exception e)
            {
                _console.TraceData(TraceEventType.Error, 0, e);
            }

            _parentStateManager?.InvokeStateDeactivated(args);
        }