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)
{
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;

View File

@ -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();
}

View File

@ -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<ShopData>(Const.ShopDataSheet);