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

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

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

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

2262閲覧

オブジェクトごとの効果音のつけ方

sakazaki

総合スコア15

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2015/09/21 12:03

以前も質問させていただいたのですが、各オブジェクトに1つずつAudioSourceとAudioClipを持たせ、オブジェクトがクリックされたらAudioSource.Playで音を鳴らしてやるようにしたいのですが、何度やってもすべてに効果音が一斉に鳴ってしまいます。

アドバイスいただいたものを参考にスクリプトを書き換えてもダメでした。

何が問題なのでしょうか?
よろしければご助言下さい。ー

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

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

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

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

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

guest

回答1

0

ベストアンサー

すみません、前の質問に返信が付いているのを見逃しておりました。
下記の質問の続きでお間違いないでしょうか。

オブジェクトの効果音のつけ方について

コメントに書かれているコードを拝見するに、今現在は以下の様なスクリプトが全ての動物につけられている状態かと思います。

  1. マウスクリックされた座標を取得する(Camera.main.ScreenToWorldPoint)
  2. 取得した座標が含まれるコライダを取得する(Physics2D.OverlapPoint)
  3. コライダが取得できた場合は、自身の鳴き声を鳴らす(audioSource.Play)

こう書いてみると、おかしいことに気付きませんか?
コライダが取得できる(=何らかの動物がクリックされた)場合に、常に鳴き声を鳴らすようになってしまっています。

本来は、「クリックされたのが自身である場合」だけ鳴き声が鳴って欲しいはずです。
その確認の為には、例えば以下の様にgameObject同士を比較する条件分を追加してやれば良いと思います。

csharp

1if (gameObject == collision2d.gameObject) { 2 // 音を鳴らす 3}

投稿2015/09/21 13:13

編集2015/09/21 13:15
hy3

総合スコア594

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

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

sakazaki

2015/09/22 16:15

毎回丁寧に答えていただいて本当にありがとうございます。 自分の力量不足で申し訳ないのですが、私のスクリプトの中にもcollision2dが必要なのでしょうか?本当に初歩的な質問だとは思いますが、調べてみてもよく意味が分かりませんでした。よろしければ教えていただけると幸いです。 また、教えていただいた、条件分岐はスクリプトのどの位置に付け加えるのが適当でしょうか?
sakazaki

2015/09/22 17:06

お騒がせしてしまいすみません。 いろいろと試行錯誤している間に、思い通りに動物の鳴き声を鳴らすことができました。 本当にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問