BGM/SE実装

This commit is contained in:
kimura 2022-06-30 11:44:54 +09:00
parent 29b07d1f81
commit bfbb5db400
3 changed files with 31 additions and 8 deletions

View File

@ -136,9 +136,11 @@ namespace MyGame.Scenes.MiniGame.Scripts
switch (x) switch (x)
{ {
case MenuState.StageSelect: case MenuState.StageSelect:
SoundManager.Instance.PlayBGM("bgm_Main");
resultManager.gameObject.SetActive(false); resultManager.gameObject.SetActive(false);
break; break;
case MenuState.Game: case MenuState.Game:
SoundManager.Instance.PlayBGM("bgm_minigame");
break; break;
default: default:
throw new ArgumentOutOfRangeException(nameof(x), x, null); throw new ArgumentOutOfRangeException(nameof(x), x, null);
@ -153,6 +155,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
resultManager.OnClose.ThrottleFirst(TimeSpan.FromMilliseconds(.2f)).Subscribe(_ => resultManager.OnClose.ThrottleFirst(TimeSpan.FromMilliseconds(.2f)).Subscribe(_ =>
{ {
SoundManager.Instance.ChangeVolumeUniqueBGM(1f);
UpdatePlayCount(); UpdatePlayCount();
scoreUpdate.OnNext(Unit.Default); scoreUpdate.OnNext(Unit.Default);
menuState.Value = MenuState.StageSelect; menuState.Value = MenuState.StageSelect;
@ -166,7 +169,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
state.Value = GameState.Play; state.Value = GameState.Play;
}).AddTo(this); }).AddTo(this);
state.Debug("gameState").Subscribe(x => state.Subscribe(x =>
{ {
readyObject.SetActive(x == GameState.Ready); readyObject.SetActive(x == GameState.Ready);
switch (x) switch (x)
@ -174,15 +177,25 @@ namespace MyGame.Scenes.MiniGame.Scripts
case GameState.Ready: case GameState.Ready:
break; break;
case GameState.Play: 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)) .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 => .Subscribe(time =>
{ {
headerView.ChangeTimeCount(time); SoundManager.Instance.PlaySE("se_minigame_RemainingTimeLeft");
}, () =>
{
state.Value = GameState.Success;
}).AddTo(gameCompositeDisposable); }).AddTo(gameCompositeDisposable);
break; break;
case GameState.Success: case GameState.Success:
@ -257,6 +270,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
private void ResetGame(ScrollGamePlaceData[] placeList, ScrollGameStageData stageData) private void ResetGame(ScrollGamePlaceData[] placeList, ScrollGameStageData stageData)
{ {
SoundManager.Instance.ChangeVolumeUniqueBGM(1f);
stageManager.ResetStage(); stageManager.ResetStage();
player.transform.position = characterBeginPos; player.transform.position = characterBeginPos;
player.Stay(); player.Stay();
@ -274,8 +288,12 @@ namespace MyGame.Scenes.MiniGame.Scripts
case GameState.Play: case GameState.Play:
break; break;
case GameState.Success: case GameState.Success:
SoundManager.Instance.PlaySE("se_minigame_End");
player.Stay(); player.Stay();
resultManager.ShowResult(scoreCount.Value, placeList, stageData); this.CallWaitForSeconds(1f, () =>
{
resultManager.ShowResult(scoreCount.Value, placeList, stageData);
});
break; break;
case GameState.Failure: case GameState.Failure:
break; break;

View File

@ -62,6 +62,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
return; return;
} }
SoundManager.Instance.PlaySE("se_minigame_Jump");
animator?.Play("Brother_pink_jump"); animator?.Play("Brother_pink_jump");
isJump = true; isJump = true;
jumpCoroutine = this.CallLerp(jumpTime, t => jumpCoroutine = this.CallLerp(jumpTime, t =>
@ -80,6 +81,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
{ {
return; return;
} }
SoundManager.Instance.PlaySE("se_minigame_Collide");
animator?.Play("Brother_pink_FallDown"); animator?.Play("Brother_pink_FallDown");
isPreHit = true; isPreHit = true;
hitDisposable?.Dispose(); hitDisposable?.Dispose();
@ -93,6 +95,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
}, () => }, () =>
{ {
isJump = false; isJump = false;
SoundManager.Instance.PlaySE("se_minigame_FallDown");
this.CallLerp(hitTime, t => this.CallLerp(hitTime, t =>
{ {
}, () => }, () =>
@ -110,6 +113,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
public void AddCount() public void AddCount()
{ {
SoundManager.Instance.PlaySE("se_minigame_ItemGet");
count++; count++;
UpdateCount(); UpdateCount();
} }

View File

@ -37,6 +37,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
public void ShowResult(int score, ScrollGamePlaceData[] placeList, ScrollGameStageData stageData) public void ShowResult(int score, ScrollGamePlaceData[] placeList, ScrollGameStageData stageData)
{ {
SoundManager.Instance.ChangeVolumeUniqueBGM(.3f);
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;
var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet); var shopDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopData>(Const.ShopDataSheet);