diff --git a/popcorn/Assets/PopcornGameManager.cs b/popcorn/Assets/PopcornGameManager.cs index 71da3599..f40163a9 100644 --- a/popcorn/Assets/PopcornGameManager.cs +++ b/popcorn/Assets/PopcornGameManager.cs @@ -31,7 +31,6 @@ public class PopcornGameManager : MonoBehaviour private readonly ReactiveProperty state = new ReactiveProperty(GameState.Guide); private readonly CompositeDisposable compositeDisposable = new CompositeDisposable(); - // Start is called before the first frame update void Start() { @@ -59,40 +58,6 @@ public class PopcornGameManager : MonoBehaviour } }).AddTo(this); - cornManager.Result.SkipLatestValueOnSubscribe().Subscribe(x => - { - state.Value = GameState.Result; - thermalControl.StopMeter(); - characterFlower.gameObject.SetActive(false); - characterSweat.gameObject.SetActive(false); - switch (x) - { - case CornResult.Perfect: - perfectResultObject.SetActive(true); - break; - case CornResult.Good: - - goodResultObject.SetActive(true); - break; - case CornResult.Failure: - failureResultObject.SetActive(true); - break; - default: - throw new ArgumentOutOfRangeException(nameof(x), x, null); - } - - // 再度画面タップでリセット - this.UpdateAsObservable() - .Select(_ => Input.GetMouseButton(0)) - .DistinctUntilChanged() - .Skip(1) - .FirstOrDefault(b => b) - .Subscribe(_ => - { - ResetGame(); - }).AddTo(this); - }).AddTo(this); - ResetGame(); } @@ -112,6 +77,49 @@ public class PopcornGameManager : MonoBehaviour private void ResetGame() { compositeDisposable.Clear(); + cornManager.Result.SkipLatestValueOnSubscribe() + .FirstOrDefault() + .DelayFrame(1) + .Subscribe(x => + { + state.Value = GameState.Result; + thermalControl.StopMeter(); + characterFlower.gameObject.SetActive(false); + characterSweat.gameObject.SetActive(false); + this.CallWaitForSeconds(1f, () => + { + + }); + // リザルト表示遅延 + Observable.Timer(TimeSpan.FromMilliseconds(1000)).Subscribe(a => + { + switch (x) + { + case CornResult.Perfect: + perfectResultObject.SetActive(true); + break; + case CornResult.Good: + goodResultObject.SetActive(true); + break; + case CornResult.Failure: + failureResultObject.SetActive(true); + break; + default: + throw new ArgumentOutOfRangeException(nameof(x), x, null); + } + // 再度画面タップでリセット + this.UpdateAsObservable() + .Select(_ => Input.GetMouseButton(0)) + .DistinctUntilChanged() + .Skip(1) + .FirstOrDefault(b => b) + .Subscribe(_ => + { + ResetGame(); + }).AddTo(compositeDisposable); + }).AddTo(compositeDisposable); + }).AddTo(compositeDisposable); + this.UpdateAsObservable() .Select(_ => Input.GetMouseButton(0)) .DistinctUntilChanged() @@ -121,6 +129,7 @@ public class PopcornGameManager : MonoBehaviour { StartGame(); }).AddTo(compositeDisposable); + ResetUI(); thermalControl.ResetMeter(); cornManager.RespawnCorn();