リザルト処理修正
This commit is contained in:
parent
a960f2170a
commit
86fd7c9b2c
|
|
@ -31,7 +31,6 @@ public class PopcornGameManager : MonoBehaviour
|
||||||
private readonly ReactiveProperty<GameState> state = new ReactiveProperty<GameState>(GameState.Guide);
|
private readonly ReactiveProperty<GameState> state = new ReactiveProperty<GameState>(GameState.Guide);
|
||||||
private readonly CompositeDisposable compositeDisposable = new CompositeDisposable();
|
private readonly CompositeDisposable compositeDisposable = new CompositeDisposable();
|
||||||
|
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
|
|
@ -59,40 +58,6 @@ public class PopcornGameManager : MonoBehaviour
|
||||||
}
|
}
|
||||||
}).AddTo(this);
|
}).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();
|
ResetGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -112,6 +77,49 @@ public class PopcornGameManager : MonoBehaviour
|
||||||
private void ResetGame()
|
private void ResetGame()
|
||||||
{
|
{
|
||||||
compositeDisposable.Clear();
|
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()
|
this.UpdateAsObservable()
|
||||||
.Select(_ => Input.GetMouseButton(0))
|
.Select(_ => Input.GetMouseButton(0))
|
||||||
.DistinctUntilChanged()
|
.DistinctUntilChanged()
|
||||||
|
|
@ -121,6 +129,7 @@ public class PopcornGameManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
StartGame();
|
StartGame();
|
||||||
}).AddTo(compositeDisposable);
|
}).AddTo(compositeDisposable);
|
||||||
|
|
||||||
ResetUI();
|
ResetUI();
|
||||||
thermalControl.ResetMeter();
|
thermalControl.ResetMeter();
|
||||||
cornManager.RespawnCorn();
|
cornManager.RespawnCorn();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue