refactor GameManager.cs

This commit is contained in:
kimura 2022-08-03 13:56:01 +09:00
parent 66c8aed7ed
commit e8c646f2b9
1 changed files with 11 additions and 12 deletions

View File

@ -188,12 +188,21 @@ namespace MyGame.Scenes.MiniGame.Scripts
state.Value = GameState.Play; state.Value = GameState.Play;
}).AddTo(this); }).AddTo(this);
var playerTransform = player.transform;
characterBeginPos = playerTransform.position;
var cameraTransform = Camera.main.transform;
var cameraOffset = cameraTransform.position - characterBeginPos.x * Vector3.right;
state.Subscribe(x => state.Subscribe(x =>
{ {
readyObject.SetActive(x == GameState.Ready); readyObject.SetActive(x == GameState.Ready);
switch (x) switch (x)
{ {
case GameState.Ready: case GameState.Ready:
var playerPosX = playerTransform.position.x;
// カメラ移動
cameraTransform.position = playerPosX * Vector3.right + cameraOffset;
bgManager.UpdatePos(playerPosX);
break; break;
case GameState.Play: case GameState.Play:
SoundManager.Instance.PlaySE("se_minigame_Start"); SoundManager.Instance.PlaySE("se_minigame_Start");
@ -213,17 +222,6 @@ namespace MyGame.Scenes.MiniGame.Scripts
} }
}).AddTo(this); }).AddTo(this);
var playerTransform = player.transform;
characterBeginPos = playerTransform.position;
var cameraTransform = Camera.main.transform;
var cameraOffset = cameraTransform.position - characterBeginPos.x * Vector3.right;
state.Where(x => x is GameState.Ready).Subscribe(_ =>
{
var playerPosX = playerTransform.position.x;
// カメラ移動
cameraTransform.position = playerPosX * Vector3.right + cameraOffset;
bgManager.ResetBg(playerPosX);
}).AddTo(this);
this.UpdateAsObservable() this.UpdateAsObservable()
.Where(_ => state.Value == GameState.Play) .Where(_ => state.Value == GameState.Play)
.Subscribe(_ => .Subscribe(_ =>
@ -357,13 +355,14 @@ namespace MyGame.Scenes.MiniGame.Scripts
{ {
SoundManager.Instance.ChangeVolumeUniqueBGM(1f); SoundManager.Instance.ChangeVolumeUniqueBGM(1f);
ResetTimer(); ResetTimer();
bgManager.ResetBg(characterBeginPos.x);
// ステージ読み込み // ステージ読み込み
stageManager.SetBeginStages(); stageManager.SetBeginStages();
player.transform.position = characterBeginPos; player.transform.position = characterBeginPos;
player.ResetPlayer(); player.ResetPlayer();
scoreCount.Value = 0; scoreCount.Value = 0;
resultManager.Reset(); resultManager.Reset();
state.Value = GameState.Ready; state.SetValueAndForceNotify(GameState.Ready);
} }
private static void UpdatePlayCount() private static void UpdatePlayCount()