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

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

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

解決済

1回答

9243閲覧

GetComponent<AudioSource>().Play(); 音が鳴りません

haku_

総合スコア4

0グッド

0クリップ

投稿2020/05/25 12:08

前提・実現したいこと

「Unityの教科書」という書籍を読みながらコードを書いています。
AudioSourceコンポーネンツを使い、音を鳴らしたいですが以下のエラーが出てしまい、音も鳴りません。

ご教授よろしくお願いいたします。

発生している問題・エラーメッセージ

ArgumentNullException: Value cannot be null. Parameter name: source UnityEngine.AudioSource.Play () (at <bc2876e8ff0b42a2a2a11b51f2b23c8a>:0) CarController.Update () (at Assets/CarController.cs:36)

該当のソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class CarController : MonoBehaviour 6{ 7 float speed = 0; 8 Vector2 startPos; 9 10 // Start is called before the first frame update 11 void Start() 12 { 13 14 } 15 16 // Update is called once per frame 17 void Update() 18 { 19 // スワイプの長さを求める 20 if (Input.GetMouseButtonDown(0)) 21 { 22 // マウスをクリックした座標 23 this.startPos = Input.mousePosition; 24 } 25 else if (Input.GetMouseButtonUp(0)) 26 { 27 28 // マウスを離した座標 29 Vector2 endPos = Input.mousePosition; 30 float swipeLength = endPos.x - this.startPos.x; 31 32 // スワイプの長さを初速度に変換する 33 this.speed = swipeLength / 500.0f; 34 35 //効果音再生 36 GetComponent<AudioSource>().Play(); 37 38 } 39 40 //車を移動 41 transform.Translate(this.speed, 0, 0); 42 //減速させる(0.98は減衰係数) 43 this.speed *= 0.9f; 44 } 45}

試したこと

AudioSourceのインスペクターウィンドウでゲーム開始時に再生というチェックボックスに入れるとゲーム開始した瞬間に鳴るのは確認できました。が、マウスのボタンが離れたら音を再生することができません。

書籍を何度も読み返し、スクリプトにAudioSourceを設定しなおしたりwebでGetComponent<AudioSource>().Play();の記述が正しいか調べたりしましたが、間違っているところが分かりません。

補足情報(FW/ツールのバージョンなど)

Unity 2019.3.14f1
VisualStudio2019

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2020/05/26 02:19

AudioSourceが複数存在していませんか?(ゲーム開始時には正常な方が鳴っているが、スクリプトではclip未設定の方にアクセスしている等が考えられます) また念の為、AudioSourceのMute(ミュート)がオンになっていないかも確認してください。
haku_

2020/05/26 11:20

AudioSouseは上記ソースコードのCarController.csがアタッチされているcarオブジェクトに一つあるだけです。AudioSourceのミュートもチェックが外れています。
haku_

2020/05/26 11:44

すいません。AudioSourceが何故かオブジェクトの下の階層に設定されていたことが問題だったようです。初めて設定したので、AudioSourceを追加すると下の階層に追加されると勘違いしていました。 オブジェクトのインスペクターウィンドウ中にAudioSourceが含まれていないと駄目だったんですね。 大変、初歩的な質問をしてしまい申し訳ありませんでした。
guest

回答1

0

自己解決

AudioSourceが何故かオブジェクトの下の階層に設定されていたことが問題だったようです。初めて設定したので、AudioSourceを追加すると下の階層に追加されると勘違いしていました。
オブジェクトのインスペクターウィンドウ中にAudioSourceが含まれていないと駄目だったんですね。
大変、初歩的な質問をしてしまい申し訳ありませんでした。

投稿2020/05/26 11:45

haku_

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問