[Unity] 効果音をつける
今日は効果音をつけようと思います。
今回は神経衰弱ゲームでカードをめくる時に「ペラッ」ていう効果音をつけたい。
結論から言うと、メインカメラにつけたスクリプトでも各カードに貼り付けたスクリプトでもどちらでも良いので、カードをめくった時に実行される関数部分に、
(「Audio Source」をコンポーネントに持つオブジェクト) .GetComponentと入れておく。ここで「OneShot」は、他の音が再生されても最後まで一回分全部再生されます。「Audio Source」をコンポーネントに持つオブジェクト、というのは下の方を読めばなんのことかわかります。 で、「適当な名前」と書いたのは自分でつける変数名で、上の行をかいたスクリプトの上(関数の外)に、().PlayOneShot(適当な名前);
public GameObject 適当な名前;などと定義しておいて、その変数に音声ファイルを割り当てればいい。 割りあて方は、そのスクリプトがアタッチされているオブジェクトをクリックして、「Inspector」タブのそのスクリプトの部分にその値を入力する欄ができるので、そこに音声ファイルをドラッグ&ドロップでいける。
ちなみに、これだけではまだ音はなりません。
Unityには「Audio Listener」と「Audio Source」というコンポーネントがあります。つまり、「音を聞く人」と「音を出す人」ということです。
なぜこんなめんどくさい仕様なのかというと、今作っている神経衰弱は2Dゲームですが、Unityが3Dゲームも作成できるツールだから。
足元でサラサラ流れる小川の表現には、小川に「Audio Source」、プレイヤーに「Audio Listener」をアタッチ。
耳元をかすめていく銃弾の表現には、銃弾に「Audio Source」、プレイヤーに「Audio Listener」をアタッチ。
まあ今は2Dゲームだしリアルさもあまり重要じゃないので、「Audio Listener」も「Audio Source」も適当なのにくっつけますが...。ちなみに「Audio Listener」はデフォルトでメインカメラについてます。
コメント
コメントを投稿