public void Initialize() { // Timerの管理はそれぞれで行ってみる // 何か不都合あれば、Masterクライアントから送るようにする MainStateEntity.OnChangeStateAsObservable(MainState.StagePlay) .Subscribe(_ => StartTimer()) .AddTo(Disposable); // 時間を描画する TimerEntity.OnUpdateTimerAsObservable() .Subscribe(RenderTime) .AddTo(Disposable); // 時間が上限まで達していたら、強制的に終了する TimerEntity.OnUpdateTimerAsObservable() .Where(_ => PhotonNetwork.IsMasterClient) .Where(time => time >= Setting.TimeoutSeconds) .Subscribe(_ => Timeout()) .AddTo(Disposable); // 正解時の挙動 ChatHandler.OnChatAsObservable() .Where(_ => MainStateEntity.Check(MainState.StagePlay)) .Where(_ => PhotonNetwork.IsMasterClient) .Where(tuple => !PlayerEntity.IsOwner(tuple.Item1)) .Where(tuple => tuple.Item2 == StageEntity.Answer) .Subscribe(tuple => Correct(tuple.Item1)) .AddTo(Disposable); }