敵や障害物にぶつかったときに、効果音を鳴らすしくみを作成してみましょう。
他のオブジェクトに触れたタイミングで音を出す、簡単なスクリプトを書いて作っていきます。
関連記事:
マウスを押してる間だけ音が鳴る
クリックのタイミングで発射音を出す
サウンドファイルのインポート
plane(床)、Cube(障害物)、Sphere(プレーヤー)の3つオブジェクトを用意しました。
それぞれカラーを付けて、配置しています。
Sphereにはリジッドボディを付けています。
音のファイルをインポートしましょう。
プロジェクトウィンドウのところで、右クリック > 新しいアセットをインポート。
音のファイルを取り込めれば、データが表示されます。
AudioSourceコンポーネント
Sphereにオーディオソースを追加します。
音のデータを、オーディオクリップに入れ、ゲーム開始時に再生のチェックを外します。
続いて、SphereMove.csを作成して、Sphereに追加します。
SphereMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SpherMove : MonoBehaviour { void Update() { float dx = Input.GetAxis("Horizontal") * Time.deltaTime * 3.0f; float dz = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f; transform.position = new Vector3 ( transform.position.x + dx, transform.position.y, transform.position.z + dz ); } void OnCollisionEnter(Collision col) { if (col.gameObject.name == "Cube") { GetComponent<AudioSource>().Play(); } } } |
ゲームプレイして、Cube(障害物)にぶつかれば音が鳴ることを確認しましょう。
GetComponent<AudioSource>().Play(); のスクリプトを1行書けば、オーディオクリップの音を鳴らすことができます。