/// <summary> /// アニメーターのタイマーを更新する。 /// </summary> public void Update() { Animators[Index].Tick(); if (Animators[Index].Counter.Value >= Animators[Index].Counter.End && Animators[Index].Counter.State == TimerState.Stopped) { if (Animators.Count - 1 > Index) { Index++; Animators[Index].Start(); } else { if (!EndFlag) { SequenceEnded?.Invoke(this, null); EndFlag = true; } } } Animators[Index].Tick(); }
public void OnScreenTap() { if (_currentScreenIndex + 1 == _ftueSequence.ScreenSequence.Count) { SequenceEnded?.Invoke(_missFtueSelected); if (!_missFtueSelected) { _ftueSequence = _missFtueSequence; _currentScreenIndex = -1; _missFtueSelected = true; } gameObject.SetActive(false); _aiManagerService.PauseAI(false); _playerHelperView.StartDelayedHelpIn(); return; } var nextScreenConfig = _ftueSequence.ScreenSequence[_currentScreenIndex + 1]; if (nextScreenConfig.AwakeTrigger != FTUETrigger.None) { gameObject.SetActive(false); _aiManagerService.PauseAI(false); _playerHelperView.StartDelayedHelpIn(); } else { ShowNextScreen(); } //if the current screen was waiting for an unblock, trigger the pending animation after close the screen if (_ftueSequence.ScreenSequence[_currentScreenIndex].AwakeTrigger == FTUETrigger.Unblock) { UnblockAction?.Invoke(); } }