Unity(C#)でVRのゲームを作っています。
特にエラー等は出ていないのでアップデート関数より上とInvokeで呼び出しているGameStartメソッドは割愛しております。
スタートボタンを見つめたら(Rayを当てたら)スタートボタンが赤くなりシーンがゲームプレイ画面へと遷移するというコードです。
Rayがコライダー(スタートボタン)に当たったら”バン”(鉄砲の音です)と音を1度鳴らせてからシーンを遷移させたいのですが、以下のコードのように当たり前ではあるのですが、Rayがコライダーに当たったらRayがコライダーに当たってる限り、シーンが遷移するまで"バンバンバンバン"と何度も音がなってしまいます。
ShotSoundメソッドは他スクリプトに記述している.playOneShotメソッドをShotSoundメソッド内に記述し、このスクリプトで宣言したsound変数に格納しているものです。
このsound.ShotSoundメソッドを1度だけ実行する、もしくはこの音を一回だけ鳴らしたり、連続して音が出ないようにする方法はないのでしょうか。。
調べたのですが全く解決方法が見つからなかったため質問いたしました。
お手数をおかけしますが、何卒お力添えをよろしくお願いします。
void Update () { Ray ray = new Ray (diveCamera.transform.position, diveCamera.transform.forward); RaycastHit hit; if (Physics.Raycast (ray, out hit)) { if (hit.collider.gameObject.tag == "changecollider") { for (int i = 0; i < changeImages.Length; i++) { changeImages [i].GetComponent<Image> ().color = Color.white; } sound.ShotSound ();//このサウンドを鳴らすメソッドを1度だけ実行させたい。連続して音が出ないようにしたい。 hit.collider.gameObject.transform.parent.GetComponent<Image> ().color = Color.red; Invoke ("GameStart", 3f); } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/20 20:45
2017/03/20 21:11
2017/03/21 17:38