/// <summary> /// Resets (pauses) the <see cref="ManualResetEvent" /> with a specified client count. /// </summary> /// <remarks> /// The count determines how many clients must pause before an event is sent /// </remarks> /// <param name="count">The count.</param> public void Pause(int count) { lock (_lock) { _clientsToPause = count; _pauseEvent.Reset(); OnPauseRequested?.Invoke(this, EventArgs.Empty); } }
private void Awake() { OnPauseRequested += HandlePause; OnGameResumeRequested += HandleResumeGame; m_BackButton.onClick.AddListener(() => { OnBackToMenuRequested?.Invoke(); }); m_PauseButton.onClick.AddListener(() => { OnPauseRequested?.Invoke(); }); m_ResumeButton.onClick.AddListener(() => { OnGameResumeRequested?.Invoke(); }); }
public void Setup() { canBeTouched = true; var pauseKey = Observable.EveryUpdate() .Where(_ => Input.GetKeyDown(KeyCode.Escape)) .Subscribe(_ => OnPauseRequested?.Invoke()); var click = Observable.EveryUpdate() .Where(_ => Input.GetButtonDown("Fire1")) .Subscribe(_ => { if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out var hit)) { OnTouch?.Invoke(hit.point.ToVector()); } }); disposables = new IDisposable[] { pauseKey, click }; }