33歩目 スキルやUIのSEを追加! Unityで1日1ステップ!ノンフィールドRPG開発日記

1日1歩開発日記

ふりかえり

前回はステージに応じて背景が切り替わるようにしました。

ゲームにより没入感が生まれました!

前回の投稿はこちら↓

スキルやUIのSEを追加!

ボタンやスキルを使ったときに音が鳴ると、ゲームの手応えが一気に増します。

今回は、以下の場面でSEを鳴らすようにしました:

  • 強撃・全力攻撃・ヒーリングスキル
  • 強化ボタン(攻撃力やHPなど)
  • UIタブ開閉

スクリプトの変更

AudioManager.cs

各SEを再生する関数を追加します。

    // 強撃SEを再生
    public void PlayStrongAttackSE()
    {
        if (strongAttackSE != null && skillAudioSource != null)
        {
            skillAudioSource.clip = strongAttackSE;
            skillAudioSource.Play();
            Debug.Log("強撃SEを再生しました");
        }
    }

    // 全力攻撃SEを再生
    public void PlayPowerAttackSE()
    {
        if (powerAttackSE != null && skillAudioSource != null)
        {
            skillAudioSource.clip = powerAttackSE;
            skillAudioSource.Play();
            Debug.Log("全力攻撃SEを再生しました");
        }
    }

    // ヒーリングSEを再生
    public void PlayHealingSE()
    {
        if (healingSE != null && skillAudioSource != null)
        {
            skillAudioSource.clip = healingSE;
            skillAudioSource.Play();
            Debug.Log("ヒーリングSEを再生しました");
        }
    }

    // タブ開閉SEを再生
    public void PlayTabOpenSE()
    {
        if (tabOpenSE != null && uiAudioSource != null)
        {
            uiAudioSource.clip = tabOpenSE;
            uiAudioSource.Play();
            Debug.Log("タブ開閉SEを再生しました");
        }
    }

    // 強化SEを再生
    public void PlayPowerUpSE()
    {
        if (powerUpSE != null && uiAudioSource != null)
        {
            uiAudioSource.clip = powerUpSE;
            uiAudioSource.Play();
            Debug.Log("強化SEを再生しました");
        }
    }

BattleManager.cs

スキル使用時にSEを再生:

        // スキル発動
        if (skillData.skillType == SkillType.Attack)
        {
            // 攻撃スキル
            int skillDamage = skillManager.CalculateSkillDamage(skillIndex, playerManager.player.attack);
            enemyManager.TakeDamage(skillDamage);
            
            // スキルSEを再生
            if (audioManager != null)
            {
                if (skillIndex == 0) // 強撃
                {
                    audioManager.PlayStrongAttackSE();
                }
                else if (skillIndex == 1) // 全力攻撃
                {
                    audioManager.PlayPowerAttackSE();
                }
            }
            
            if (battleLogManager != null)
            {
                battleLogManager.AddLog($"{playerManager.player.name}の{skillData.skillName}!{enemyManager.enemy.name}に{skillDamage}ダメージ!", Color.yellow);
            }
        }
        else if (skillData.skillType == SkillType.Healing)
        {
            // ヒーリングスキル
            int healAmount = skillManager.GetHealAmount(skillIndex, playerManager.player.maxHP);
            int oldHP = playerManager.player.currentHP;
            playerManager.player.currentHP = Mathf.Min(playerManager.player.currentHP + healAmount, playerManager.player.maxHP);
            int actualHeal = playerManager.player.currentHP - oldHP;
            
            // ヒーリングSEを再生
            if (audioManager != null)
            {
                audioManager.PlayHealingSE();
            }
            
            if (battleLogManager != null)
            {
                battleLogManager.AddLog($"{playerManager.player.name}の{skillData.skillName}!HPを{actualHeal}回復!", Color.green);
            }
        }

PowerUpManager.cs

ステータスを強化したときにSEを再生:

下は攻撃力を強化した時の例

    public void PowerUpAttack()
    {
        if (playerManager.player.gold >= attackUpCost)
        {
            playerManager.player.gold -= attackUpCost;
            playerManager.player.attack += attackUpValue;
            
            // 強化SEを再生
            if (audioManager != null)
            {
                audioManager.PlayPowerUpSE();
            }
            
            ShowMessage($"攻撃力が{attackUpValue}増加しました!");
        }
        else
        {
            ShowMessage("ゴールドが足りません。");
        }
        playerManager.playerUIManager.UpdateUI();
        UpdateUI();
    }

Unityでの設定

  • Skill Audio SourceUI Audio Source に AudioSource をアタッチ
  • 各 AudioClip にSEファイルを登録(例:強撃SE、ヒーリングSEなど)

動作確認

スキルやボタンを押すたびに、しっかりSEが再生されました!

※音付き動画を載せられなくてすみません…今後対応できるようにします!

まとめ

今回はスキルやボタン操作時にSEを追加し、

「何が起きたのか」を音で分かるようにしました!

これでゲームにより一体感が出てきました!

次回予告

会心の一撃を実装します!

お楽しみに!

タイトルとURLをコピーしました