【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オブジェクト)にぶつかると、音が出る。
ディスカッション
コメント一覧
Very good information. Lucky me I found your website by chance
(stumbleupon). I have bookmarked it for later!