1.Select ゲームスタート〜干支の選択中 2.Game パズルゲーム開始時〜パズルゲーム中 3.Result パズルゲーム終了〜リザルト表示中 4.Select リザルト表示終了〜ゲーム再スタート(AudioClipは【1】と同じ)
1.Result リザルト表示時(スコアと消した数のカウントに合わせて、ドラムロール音) 2.OK 干支の選択時(干支選択中に干支をタップして選択した時)と、スタートボタン押下時 3.Erase 干支を消した時(パズルゲーム中) 4.Skill スキル発動時(スキルボタンを押した時) 5.Transition リザルト表示→干支の選択へ遷移する時(フェイドアウト中) 6.Shuffle シャッフル時(シャッフルボタンを押した時)
public enum BGM_Type { Select, Game, Result, } // SE管理 public enum SE_Type { Result, OK, Erase, Skill, Transition, Shuffle, }
1.Unityに音源をインポートする 2.SoundManagerゲームオブジェクトのSoundManagerスクリプトのアサイン情報にAudioClipを追加する 3.スクリプトにBGMを再生する処理を追加する 4.スクリプトにSEを再生する処理を追加する 5.ゲームを実行して動作を確認する
1.Select ゲームスタート〜干支の選択中 2.Game パズルゲーム開始時〜パズルゲーム中 3.Result パズルゲーム終了〜リザルト表示中 4.Select リザルト表示終了〜ゲーム再スタート(AudioClipは【1】と同じ)
IEnumerator Start() { StartCoroutine(TransitionManager.instance.FadePanel(0.0f)); ////* ここに追加 *//// SoundManager.instance.PlayBGM(SoundManager.BGM_Type.Select); ///////////////////// // スコアなどを初期化 GameData.instance.InitGame(); // ステートを干支選択中に変更 gameState = GameState.Select; // 割愛
public IEnumerator PreparateGame() { // ステートを準備中に変更 gameState = GameState.Ready; // 残り時間の表示 uiManager.UpdateDisplayGameTime(GameData.instance.gameTime); // ゲームに登場させる干支の種類を設定する yield return StartCoroutine(SetUpEtoTypes(GameData.instance.etoTypeCount)); // スキルボタンの設定 yield return StartCoroutine(SetUpSkill(GameData.instance.selectedSkillType)); // 引数で指定した数の干支を生成する StartCoroutine(CreateEtos(GameData.instance.createEtoCount)); ////* ここに追加 *//// SoundManager.instance.PlayBGM(SoundManager.BGM_Type.Game); ///////////////////// }
private IEnumerator MoveResultPopUp() { resultPopUp.transform.DOMoveY(0, 1.0f).SetEase(Ease.Linear).OnComplete(() => { // ゲーム結果表示 resultPopUp.DisplayResult(GameData.instance.score, GameData.instance.eraseEtoCount); //Debug.Log("リザルト内容を表示します"); }); ////* ここから追加 *//// // SEを鳴らすまでの待機時間 yield return new WaitForSeconds(0.5f); // <= ☆ 待機時間は音源に合わせて適宜調整してください // ドラムロールのSE再生 SoundManager.instance.PlaySE(SoundManager.SE_Type.Result); // SEが流れ終わってBGMを切り替えるまでの待機時間 yield return new WaitForSeconds(2.5f); // <= ☆ 待機時間は音源に合わせて適宜調整してください SoundManager.instance.PlayBGM(SoundManager.BGM_Type.Result); ///////////////////// }
private void OnClickMovePopUp() { ////* ここから追加 *//// SoundManager.instance.PlayBGM(SoundManager.BGM_Type.Select); SoundManager.instance.PlaySE(SoundManager.SE_Type.Transition); ///////////////////// btnClosePopUp.interactable = false; transform.DOMoveY(posY, 1.0f); StartCoroutine(GameData.instance.RestartGame()); }
1.Result リザルト表示時(スコアと消した数のカウントに合わせて、ドラムロール音) 2.OK 干支の選択時(干支選択中に干支をタップして選択した時)と、スタートボタン押下時 3.Erase 干支を消した時(パズルゲーム中) 4.Skill スキル発動時(スキルボタンを押した時) 5.Transition リザルト表示→干支の選択へ遷移する時(フェイドアウト中) 6.Shuffle シャッフル時(シャッフルボタンを押した時)
private IEnumerator OnClickEtoButton() { ////* ここから追加 *//// SoundManager.instance.PlaySE(SoundManager.SE_Type.OK); ///////////////////// // 干支ボタンの保持する干支データをGameDataに代入(選択した干支データとする) GameData.instance.selectedEtoData = etoData; // 干支ボタンをポップアニメさせる transform.DOScale(new Vector3(1.3f, 1.3f, 1.3f), 0.15f).SetEase(Ease.Linear); yield return new WaitForSeconds(0.15f); transform.DOScale(Vector3.one, 0.15f); // 干支ボタンの色を選択中の色に変更し、他の干支ボタンの色を選択中でない色に変更 etoSelectPopUp.ChangeColorToEtoButton(etoData.etoType); }
スタートボタン押下時は、EtoSelectPopUpスクリプトのOnClickStartメソッドに再生処理を追加します。
private void OnClickStart() { ////* ここから追加 *//// SoundManager.instance.PlaySE(SoundManager.SE_Type.OK); ///////////////////// // スタートボタンを押せないようにして重複タップを防止 btnStart.interactable = false; // 割愛
private void OnEndDrag() { if (eraseEtoList.Count >= 3) { // 選択されている干支を消す for (int i = 0; i < eraseEtoList.Count; i++) { // 干支リストから取り除く etoList.Remove(eraseEtoList[i]); // エフェクト生成 GameObject effect = Instantiate(eraseEffectPrefab, eraseEtoList[i].gameObject.transform); effect.transform.SetParent(etoSetTran); // 干支を削除 Destroy(eraseEtoList[i].gameObject); ////* ここから追加 *//// SoundManager.instance.PlaySE(SoundManager.SE_Type.Erase); ///////////////////// } // スコアと消した干支の数の加算 AddScores(currentEtoType, eraseEtoList.Count); // スキルポイント加算 uiManager.AddSkillPoint(eraseEtoList.Count); // 割愛
public void TriggerSkill() { ////* ここから追加 *//// SoundManager.instance.PlaySE(SoundManager.SE_Type.Skill); ///////////////////// // ボタンの重複タップ防止 btnSkill.interactable = false; // 登録されているスキルを使用 unityEvent.Invoke(); // 割愛
private void TriggerShuffle() { ////* ここから追加 *//// SoundManager.instance.PlaySE(SoundManager.SE_Type.Shuffle); ///////////////////// // シャッフルボタンを押せなくする。重複タップ防止 ActivateShuffleButton(false); // シャッフル開始 shuffle.StartShuffle(); }