diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs index 0f7cae35..c9b016e6 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/GameManager.cs @@ -136,9 +136,11 @@ namespace MyGame.Scenes.MiniGame.Scripts switch (x) { case MenuState.StageSelect: + SoundManager.Instance.PlayBGM("bgm_Main"); resultManager.gameObject.SetActive(false); break; case MenuState.Game: + SoundManager.Instance.PlayBGM("bgm_minigame"); break; default: throw new ArgumentOutOfRangeException(nameof(x), x, null); @@ -153,6 +155,7 @@ namespace MyGame.Scenes.MiniGame.Scripts resultManager.OnClose.ThrottleFirst(TimeSpan.FromMilliseconds(.2f)).Subscribe(_ => { + SoundManager.Instance.ChangeVolumeUniqueBGM(1f); UpdatePlayCount(); scoreUpdate.OnNext(Unit.Default); menuState.Value = MenuState.StageSelect; @@ -166,7 +169,7 @@ namespace MyGame.Scenes.MiniGame.Scripts state.Value = GameState.Play; }).AddTo(this); - state.Debug("gameState").Subscribe(x => + state.Subscribe(x => { readyObject.SetActive(x == GameState.Ready); switch (x) @@ -174,15 +177,25 @@ namespace MyGame.Scenes.MiniGame.Scripts case GameState.Ready: break; case GameState.Play: - Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f)) + SoundManager.Instance.PlaySE("se_minigame_Start"); + var sharedTimer = Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f)) .Select(time => (int)(timeLimit - time)) - .TakeWhile(time => time >= 0) + .TakeWhile(time => time > 0) + .Share(); + sharedTimer.Subscribe(time => + { + headerView.ChangeTimeCount(time); + }, () => + { + headerView.ChangeTimeCount(0f); + state.Value = GameState.Success; + }).AddTo(gameCompositeDisposable); + sharedTimer + .Where(time => time <= 5) + .Take(1) .Subscribe(time => { - headerView.ChangeTimeCount(time); - }, () => - { - state.Value = GameState.Success; + SoundManager.Instance.PlaySE("se_minigame_RemainingTimeLeft"); }).AddTo(gameCompositeDisposable); break; case GameState.Success: @@ -257,6 +270,7 @@ namespace MyGame.Scenes.MiniGame.Scripts private void ResetGame(ScrollGamePlaceData[] placeList, ScrollGameStageData stageData) { + SoundManager.Instance.ChangeVolumeUniqueBGM(1f); stageManager.ResetStage(); player.transform.position = characterBeginPos; player.Stay(); @@ -274,8 +288,12 @@ namespace MyGame.Scenes.MiniGame.Scripts case GameState.Play: break; case GameState.Success: + SoundManager.Instance.PlaySE("se_minigame_End"); player.Stay(); - resultManager.ShowResult(scoreCount.Value, placeList, stageData); + this.CallWaitForSeconds(1f, () => + { + resultManager.ShowResult(scoreCount.Value, placeList, stageData); + }); break; case GameState.Failure: break; diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs index d059c26a..3ffa24ae 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/Player.cs @@ -62,6 +62,7 @@ namespace MyGame.Scenes.MiniGame.Scripts return; } + SoundManager.Instance.PlaySE("se_minigame_Jump"); animator?.Play("Brother_pink_jump"); isJump = true; jumpCoroutine = this.CallLerp(jumpTime, t => @@ -80,6 +81,7 @@ namespace MyGame.Scenes.MiniGame.Scripts { return; } + SoundManager.Instance.PlaySE("se_minigame_Collide"); animator?.Play("Brother_pink_FallDown"); isPreHit = true; hitDisposable?.Dispose(); @@ -93,6 +95,7 @@ namespace MyGame.Scenes.MiniGame.Scripts }, () => { isJump = false; + SoundManager.Instance.PlaySE("se_minigame_FallDown"); this.CallLerp(hitTime, t => { }, () => @@ -110,6 +113,7 @@ namespace MyGame.Scenes.MiniGame.Scripts public void AddCount() { + SoundManager.Instance.PlaySE("se_minigame_ItemGet"); count++; UpdateCount(); } diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ResultManager.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ResultManager.cs index e94559c0..eed1a092 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ResultManager.cs +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ResultManager.cs @@ -37,6 +37,7 @@ namespace MyGame.Scenes.MiniGame.Scripts public void ShowResult(int score, ScrollGamePlaceData[] placeList, ScrollGameStageData stageData) { + SoundManager.Instance.ChangeVolumeUniqueBGM(.3f); var gameData = GameDataManager.GameData; var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.ShopDataSheet);