質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.60%

  • C#

    6862questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Unity

    3819questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • Unity2D

    832questions

同じシーンで一つ目の音しか再生されない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 129

Buddha_san2

score 19

 前提

Unity、C#初心者です、クイズゲームを作っています。
最初に、同じシーンで、Play On Awakeで効果音を流します。
その後に、ボタンのクリックで違う効果音を流したいと思っています。

 問題

ボタンをクリックして出る効果音が再生されません。

 該当のソースコード

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SoundPon : MonoBehaviour {

    public void Pon () {
     //効果音出す
        GetComponent<AudioSource>().Play();
    }

}


ボタンの中に流したいAudio Sourceを入れ、
ボタンをクリック時に、このPonメソッドを起動するようにしたのですが、音が流れません。

なぜ音が出ないのか分かりません。教えて頂けるとうれしいです。

 補足

クリック時にこのPonメソッドだけでなく、

public void EndScene()
    {

        if (SceneManager.GetActiveScene().name == "Score")
        {
            //シーンを変える
            SceneManager.LoadScene("Title");            
        }


このメソッドも起動させています。

 さらに補足

Debug.Logをして、Ponメソッドは起動していました。
しかし、GetComponent<AudioSource>().Play(); が反応していないようです。
同じシーンにAudioSourceがもう一つあるからでしょうか?よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

貼られているコードだけでは判断しようがない気がします。
まずはPonメソッドの中に処理が届いているのか確認してみてはいかがでしょうか。

public void Pon()
{
    Debug.Log("Ponまで処理が来ている");

   //効果音出す
    GetComponent<AudioSource>().Play();
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/16 21:12

    補足に文章を追加しました、確認して頂けると嬉しいです。

    キャンセル

  • 2018/05/16 21:15

    同じシーンに複数のAudioSourceがあっても問題ないので、それが原因ではないはずです。
    AudioSourceにAudioClipはアタッチされていますか?

    キャンセル

  • 2018/05/16 21:19

    はい、流したい音をAudioClipにアタッチさせています。

    キャンセル

  • 2018/05/16 21:22 編集

    うーん、なぜでしょうね。
    ・AudioSourceはPonメソッドのスクリプトと同じオブジェクトにアタッチされているか確認する
    ・AudioClipを別の物に差し替えてみる
    などではいかがでしょうか。
    インスペクターのスクリーンショットを貼ることはできますか?

    キャンセル

  • 2018/05/16 21:42

    別の音を差し替えてみました。
    実際に音は出ているらしく、シーンが変わる一瞬、「プツッ」という音が聞こえました
    多分ですが、全ての音が出ないうちにシーンが変わっていると思われます・・・
    効果音を編集して、すぐに音が出るようにしました!
    次からは、自分で確認するように、できるように頑張ります!ありがとうございます!

    キャンセル

  • 2018/05/16 21:47

    解決したようで何よりです。
    そのような場合、効果音が鳴り終わるまでシーンの切り替えを遅らせるのもひとつの案かと思います。

    キャンセル

  • 2018/05/16 22:10

    なるほど・・・了解です!ありがとうございます!

    キャンセル

0

「Unity GetComponent<AudioSource>().Play()」で検索すると
Unityで音を再生するがヒットしました。
これには

音声を同時に再生させる場合は、以下のように
AudioSourceを2つ以上にして操作するようにすれば良いです。

とあります。

( From 上記ページ )

そこから考えて、一個につき1回じゃないかなと。

なので、二回分鳴らすなら 二回分 GetComponent<AudioSource>().Play()とやらを動かさないといけないみたい。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/16 20:27

    大変申し訳ございません。伝えたい文章を誤ってしまいました。文章を変えましたので、確認して頂けると嬉しいです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    UnityのwebPlayerについて

    Unity Personal上ではデバッグをすると画面の遷移(GetActiveSceneを使用しています)が行えますが、ビルドし、web上(FireFox)で遷移をしようとすると

  • 解決済

    [Unity]SceneManager.UnloadSceneでシーン遷移先でシーン遷移元の描画が消...

    スマートフォンをターゲットとした、アプリケーションを作成中です。 Unloadのマニュアルは確認しました。リンク内容 使用しているバージョンは5.4.1f1です。 C#を使用

  • 解決済

    Unity スクリプトの減らし方

    こんにちは。現在Unityを用いてゲーム開発を行っています。 スクリプトを書いていて、同じようなスクリプトが増えてしまう問題に直面しています。 例えば、画面をクリックしたら任意

  • 解決済

    unity 当たったらシーンロードする方法

    オブジェクトオブジェクトに当たったらシーンロードする方法が知りたいです。

  • 解決済

    ボタンでオブジェクトの表示/非表示を切り替えたい

    前提・実現したいこと canvas内にButtonAとCubeが配置してあるのですが、ButtonAを押すたびにCubeの表示・非表示が切り替わるようにしたいです。 現在は

  • 解決済

    Unity衝突判定重複について(シーン切り替え、効果音)

    Unity5.5を使って開発しております。 衝突判定で効果音を鳴らした後に、シーン切り替えを行いたいのですが どのようなスクリプトが必要でしょうか。 参考までにサンプルコ

  • 解決済

    unity シーン自動遷移

    現在unityにて横スクロールのゲームを作成しています。行き詰まっているので教えて欲しいことがあります。詳しく言うと、 ・最後のステージでゴールに着いたらタイトルに戻る ・穴に落ち

  • 解決済

    Unity:音のランダム再生について

     前提・実現したいこと ここに質問の内容を詳しく書いてください。 Unityで音をランダムに再生するスクリプトをC#で書きたいのですが手こずっています。 やりたいことは、 ・3

同じタグがついた質問を見る

  • C#

    6862questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Unity

    3819questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • Unity2D

    832questions