ゲームビューでクリックすれば音を出して、ボタンを押したときだけは音を消すしくみを作ってみましょう。
マウスの左ボタンを押すタイミングでオーディオ再生しますが、マウスカーソルがボタンに乗っている間は再生されません。
関連記事:
ボタンを押せば音が鳴る
マウスを押してる間だけ音が鳴る
クリックのタイミングで発射音を出す
触れたタイミングで音を鳴らす
サウンド再生のPlayとPlayOneShotの違い
ボタンを押したときだけ無音にするスクリプト
音楽ファイルを、インポートします。
プロジェクトビューの中で右クリックして、新しいアセットをインポート。
今回はsound01というmp3ファイルを用意しました。
空のオブジェクトを作成します。
GameObject(空のオブジェクト)に、AudioSourceコンポーネントを追加します。
オーディオクリップにsound01を入れ、ゲーム開始時に再生のチェックを外します。
PlaySound.csを作成し、GameObjectに追加します。
PlaySound.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlaySound : MonoBehaviour { private bool soundOff; void Start() { soundOff = false; } void Update() { if(Input.GetMouseButtonDown(0) && !soundOff) { GetComponent<AudioSource>().Play(); } } public void Event() { soundOff = true; } public void Exit() { soundOff = false; } } |
ゲームプレイして、画面をクリックすれば、音が鳴るようになります。
イベントトリガーの追加
続いて、ボタンをクリックした時には無音になるように、設定していきましょう。
ボタンを作成します。
Buttonにイベントトリガーを追加します。
コンポーネントを追加 > イベント > イベントトリガー
Pointer Enterを設定
「新しいイベントタイプを追加」をクリックし、Pointer Enterを選択します。
Pointer Enterは、ボタンにマウスを乗せたときのアクションになります。
Pointer Enterを以下の手順で設定しましょう。
Pointer Exitを設定
続いて、ボタンからマウスが離れた時の、アクションをつけましょう。
「新しいイベントタイプを追加」をクリックし、Pointer Exitを選択します。
ここでは、PlaySound > Exit() を選択します。
ゲームプレイしてみましょう。
画面上をクリックすれば、サウンド再生。
ボタンをクリックしたときだけ、再生されません。
関連記事:
ボタンを押せば音が鳴る
マウスを押してる間だけ音が鳴る
クリックのタイミングで発射音を出す
触れたタイミングで音を鳴らす
サウンド再生のPlayとPlayOneShotの違い