はじめに
Unityでゲームを作成している際、「弾を発射する」という機能はアクションゲームには欠かせません。さらに、その弾を発射する瞬間に発射音を出すことで、ゲーム体験はぐっとリアルに、面白くなります。今回はUnity初心者の方でも理解しやすいように、クリックのタイミングで弾を発射し、その際に発射音を出す方法をご紹介します。
Unityプロジェクトの準備
まずは、Unityを開いて新しいプロジェクトを作成します。3Dプロジェクトを選択して、プロジェクトに名前をつけて保存場所を指定しましょう。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-27_184016.png)
プロジェクトが開いたら、シーンにボールを表すオブジェクトを追加します。GameObjectメニューから3D Object > Sphereを選択してボールを作成できます。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-27_181622.png)
発射機能の実装
ボールを発射するためには、まずボールに物理的な挙動を付加する必要があります。ボールのGameObjectにRigidbodyコンポーネントを追加します。これにより、重力の影響を受けたり、力を加えて動かしたりできるようになります。
次に、ボールを発射するスクリプトを作成します。プロジェクトパネルのAssetsフォルダ内で右クリックし、Create > C# Scriptを選択して、スクリプトに「BallLauncher」という名前をつけます。スクリプトをダブルクリックして開き、以下のようにコードを書きます。
using UnityEngine;
public class BallLauncher : MonoBehaviour
{
public Rigidbody ballRigidbody;
public float launchForce = 700f;
void Update()
{
if (Input.GetMouseButtonDown(0)) // マウスの左ボタンがクリックされたら
{
ballRigidbody.AddForce(transform.forward * launchForce);
PlayLaunchSound();
}
}
void PlayLaunchSound()
{
// ここで発射音を再生するコードを書きます
}
}
このコードは、マウスの左ボタンがクリックされた瞬間に、ボールに前方向への力を加えて発射し、そのタイミングでPlayLaunchSound
メソッドを呼び出して発射音を出すようにしています。
発射音の追加
発射音を再生するには、まず発射音のオーディオファイルをプロジェクトに追加する必要があります。Assetsフォルダにオーディオファイルをドラッグ&ドロップで追加しましょう。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-02_175911.png)
次に、シーンのどこかに空のGameObjectを作成し、「AudioSource」と名付けます。このGameObjectにAudioSourceコンポーネントを追加し、先ほどのオーディオファイルをAudioClipプロパティに割り当てます。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-02_180625.png)
BallLauncher
スクリプトに戻り、PlayLaunchSound
メソッド内で、AudioSourceコンポーネントを使用して音を再生するコードを追加します。
public AudioSource launchSoundSource;
void PlayLaunchSound()
{
launchSoundSource.Play();
}
BallLauncher
スクリプトのlaunchSoundSource
フィールドに、シーン内のAudioSourceコンポーネントを持つGameObjectをInspectorから割り当てます。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-02_180707-1.png)
ゲームを実行して弾を発射する際に効果音が鳴るようになりました。
まとめ
以上で、Unityでクリックのタイミングで弾を発射し、その際に発射音を出す基本的な設定は完了です。この方法をマスターすれば、さらに複雑な機能の実装にも挑戦できるようになります。
Unityでゲームを作る醍醐味は、こうした小さな機能を組み合わせて、自分だけのゲームを作り上げることにあります。これからも、色々な機能を追加して、オリジナルのゲーム開発に挑戦してみてください。