リザルト処理修正

This commit is contained in:
kimura 2021-07-09 10:04:02 +09:00
parent a960f2170a
commit 86fd7c9b2c
1 changed files with 44 additions and 35 deletions

View File

@ -31,7 +31,6 @@ public class PopcornGameManager : MonoBehaviour
private readonly ReactiveProperty<GameState> state = new ReactiveProperty<GameState>(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();