【Unity】プレイヤーに当たったら音が出るブロックを作る

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オブジェクト)にぶつかると、音が出る。

Unity

Posted by ton