Unityでゲームを作るとき、プレハブを使って色々なオブジェクトを簡単に複製できます。今回は、左クリックでプレハブを発射し、さらにボタンを押すことで発射するプレハブを切り替える方法を解説します。
ステップ1: 必要な素材を準備する
まず、発射したいオブジェクトを作成し、それをプレハブ化します。この記事では3種類のPrefabを作成しました。
- ヒエラルキーウィンドウで右クリックし、「3D Object」→「Sphere」を選択します。
- inspector画面のaddComponentから「Rigidbody」を検索してアタッチします。
- 色を変更し、作成したオブジェクトをプロジェクトウィンドウにドラッグしてプレハブにします。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-14_005539.png)
ステップ2:UIボタンを作成する
まず、UIボタンをシーンに追加します。Prefabの数だけ作成します。
- ヒエラルキーウィンドウで右クリックし、「UI」→「Button」を選択します。これでCanvasとButtonが作成されます。
- ボタンのテキストを変更するには、ヒエラルキーウィンドウでButtonの子オブジェクトである「Text」を選択し、インスペクターウィンドウでTextコンポーネントのTextプロパティを変更します。「1」「2」「3」に変更しました。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-14_155306.png)
ステップ3: 発射機能を実装する
次に、プレハブを発射するスクリプトを作成します。
- スクリプトの作成
プロジェクトウィンドウで右クリックして、「Create」→「C# Script」を選び、スクリプト名を「BallShooter」にします。 - スクリプトの編集
作成したスクリプトをダブルクリックして開き、以下のコードを入力します。
using UnityEngine;
using UnityEngine.EventSystems;
public class BallShooter : MonoBehaviour
{
public GameObject[] ballArray;
private int change;
void Start()
{
change = 0;
}
public void Button1()
{
change = 0;
}
public void Button2()
{
change = 1;
}
public void Button3()
{
change = 2;
}
void Update()
{
if (EventSystem.current.IsPointerOverGameObject())
{
return;
}
if (Input.GetMouseButtonDown(0))
{
GameObject ball = GameObject.Instantiate(ballArray[change]) as GameObject;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Vector3 dir = ray.direction;
ball.GetComponent<Rigidbody>().AddForce(dir * 3000);
}
}
}
ステップ4:スクリプトの設定
- スクリプトのアタッチ
ヒエラルキーウィンドウで空のオブジェクトなどを作成し、作成したスクリプトをドラッグ&ドロップしてアタッチします。 - プレハブの設定
カメラにアタッチしたスクリプトのインスペクターで、
に発射したいプレハブをドラッグ&ドロップして設定します。ballArray
- ボタンの設定
次に、3つのButton
のフィールドにUIのButtonオブジェクトをドラッグして設定します。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-14_010934.png)
ステップ5:動作確認
- ゲームを再生
Unityエディターの上部にある「再生ボタン」を押して、ゲームを再生します。 - プレハブの発射と切り替え
クリックでプレハブを発射し、ボタンを押して発射するプレハブが切り替わることを確認しましょう。
これで、クリックでプレハブを発射し、ボタンでプレハブを切り替える仕組みが完成です!どんどん試して自分のゲームに取り入れてみてくださいね。
おすすめのアセット
Bubble Merge | Template & Editorは、2Dカジュアルゲームを簡単に作成できるテンプレートです。このアセットは、バブルを合体させて高得点を目指すパズルゲームのテンプレートで、初心者でも使いやすいエディターが付属しています。特徴として、直感的な操作性、カスタマイズ可能なバブルデザイン、スコアシステムなどが含まれています。