【Unity】プレイヤーに当たったら音が出るブロックを作る
プレイヤーに当たったら音が出るブロックを作る方法を紹介します。
目次
音が出るGameObjectを作成
1.例としてCylinderを設置します。名前はCylinderPlayAudioにします。

プレイヤーが当たったら音が出るスクリプトを作成する
1.PlayAudio.csという名前のスクリプトを作成して、以下のコードを記載する。
using UnityEngine;
public class PlayAudio : MonoBehaviour
{
// 音データの再生装置を格納する変数
private AudioSource audio;
// 音データを格納する変数(Inspectorタブからも値を変更できるようにする)
[SerializeField]
private AudioClip sound;
// Start is called before the first frame update
void Start()
{
// ゲームスタート時にAudioSource(音再生装置)のコンポーネントを加える
audio = gameObject.AddComponent<AudioSource>();
}
/// <summary>
/// 衝突した時
/// </summary>
/// <param name="collision"></param>
void OnCollisionEnter(Collision collision)
{
// 衝突した相手にPlayerタグが付いているとき
if (collision.gameObject.tag == "Player")
{
// 音(sound)を一度だけ(PlayOneShot)再生する
audio.PlayOneShot(sound);
}
}
}
スクリプトを音を出したいGameObjectにアタッチする
1.PlayAudio.csを音を出したいGameObject(CylinderPlayAudioオブジェクト)にアタッチする。

PlayAudioスクリプト(コンポーネント)に音を設定
1.HierarchyタブでCylinderPlayAudioオブジェクトを選択

2.InspectorタブのPlay Audio(Script)のSoundに好きな音データを入れる

2-1.音データをドラックアンドドロップで入れる

2-2.Soundに音データが入っていることを確認(画面の"Bullet Impact 14″の部分)

プレイヤーオブジェクトのTagに"Player"を設定
1.プレイヤーオブジェクト(今回はunitychan)のTagに"Player"を設定

完成
これでプレイヤーが音が出るGameObject(CylinderPlayAudioオブジェクト)にぶつかると、音が出る。
ディスカッション
コメント一覧
まだ、コメントがありません