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

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

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

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

解決済

2回答

11479閲覧

【unity5】音声の単発再生について

vp650_k

総合スコア12

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

0クリップ

投稿2015/08/28 03:09

unityの音声再生について質問です。
ある条件が満たされたている間、一度だけ音を鳴らして後は黙らせたいのですがPlayOneShotを使っている(unity5になってからaudio.Playが使えなくなってしまったのでしょうか…)ので「ピッ」という音が「ピロピロピロ」になってしまいます。

そこで条件式を追加して、function.Updateで1フレームのみ鳴らしてその後はfunction.LateUpdateで音を鳴らないようにするようにしたのですが、何も鳴らなくなってしまいました。

最終的には画像が表示された瞬間音を鳴らし、その画像が出ている間は音声を止めるというスクリプトにしたいです。

#pragma strict import UnityEngine.UI; var image:Image; var flagflag:boolean; var sound:AudioClip; function start(){ flagflag=true; } function Update () { if(flagflag==true){ if(image.enabled==true){ GetComponent.<AudioSource>().PlayOneShot(sound); } } } function LateUpdate(){ if(image.enabled==true){ flagflag=false; }else{ flagflag=true; } }

よろしくお願いします。

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

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

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

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

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

guest

回答2

0

音声ではありませんが、Start と Update のタイミングで問題があったのでご参考まで。

画面キャプチャを連番の画像ファイルに落とす処理を Update にいれたところ
・1フレーム目だけファイルが作成できない
・2フレーム目以降は正常に作成できる
という問題が起きました。
このときは Start が完了する前に 1回目の Update が実行されていることが原因でした。
キー入力をトリガーとしてキャプチャ取る処理を始めるようにしたら、最初のフレームから作成できるようになりました。

これと同じことが起きているとすると、
1回目の Update
Start で flagflag=true;
LateUpdate で flagflag=false;
となってしまっているかもしれません。

投稿2015/08/28 04:56

mie

総合スコア229

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

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

0

ベストアンサー

LateUpdateを使わずに、Update関数を以下のように変更すれば上手くいきませんか?

javascript

1function Update () { 2 if(image.enabled==true){ 3 if(flagflag==true){ 4 GetComponent.<AudioSource>().PlayOneShot(sound); 5 flagflag == false; 6 } 7 } else { 8 flagflag = true; 9 } 10}

私の予想なのでこのようなことが本当に起こるかどうか判らないのですが、LateUpdateの実行中に次のフレームのUpdateが呼び出され、動作がおかしくなったのではないでしょうか。

なお、GameObject.audioはUnityのバージョン5.1以降使えなくなったようです。
GameObject.audioの公式リファレンス

投稿2015/08/28 03:53

hy3

総合スコア594

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

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

vp650_k

2015/08/29 05:16

ありがとうございます。このスクリプトで正常に作動しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問