private void Start() { Time.timeScale = 1; FlyProgress = new ReactiveProperty <float>(0); var levelData = GameProgress.SelectedLevel; Assert.IsNotNull(levelData); OnLoadLevelEvent?.Invoke(levelData); Lose.Where(t => t == true).Subscribe(t => PauseGame()); Win.Where(t => t == true).Subscribe(t => WinByFly()); Observable.EveryUpdate().Subscribe(t => { _flyProgress += Time.deltaTime; FlyProgress.Value = _flyProgress / _flyTime; }); }