はじめに
Unityでゲームを作っていると、「チャージして何かをする」という機能を実装したい場面が出てきます。今日は、「マウス長押しでパワーを貯め、オブジェクトを動かす」機能を実装し、そのパワーをゲージで可視化する方法について、初心者にも分かりやすく解説します。
Unityプロジェクトの準備
まず、Unityを開いて新しいプロジェクトを作成しましょう。プロジェクト名は何でも構いません、例として「PowerGaugeDemo」などと付けるとよいと思います。必要なアセットがある場合は、事前にインポートしておきましょう。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-27_184016.png)
オブジェクトの準備
Unityエディターで、シーンにオブジェクトを追加します。例として、動かしたいオブジェクトを「Cube」とし、UIとしてパワーゲージを表示するための「Slider」を使用します。CubeはHierarchyで右クリック→3D Object→Cubeを選択して作成し、SliderはHierarchyで右クリック→UI→Sliderを選択して作成します。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-31_171300.png)
ゲージのデザイン等の変更方法はこちらの記事を参考にしてください。
スクリプトの作成
Sphereオブジェクトを動かすためのスクリプトと、パワーゲージを制御するスクリプトを作成します。ここでは、「PowerController」という名前のスクリプトを作り、以下のようなコードを書きます。
スクリプトの構成要素
- 変数の宣言
private float power;
:蓄積されるパワーの量を保持します。public Rigidbody rb;
:オブジェクトに付加されるRigidbodyコンポーネントへの参照。物理演算を利用してオブジェクトを動かします。public Slider slider;
:パワーの蓄積状態を視覚的に表示するUIスライダーへの参照。
スクリプトの動作
- Startメソッド
- ゲーム開始時にパワーを0に初期化し、スライダーの値も0に設定します。
- Updateメソッド
- マウスボタンが押されている間(
Input.GetMouseButton(0)
がtrue
を返す間)、パワーを徐々に増加させます。ここでは、パワーが10未満の場合に限り、毎フレーム0.1ずつ加算しています。 - マウスボタンが離された瞬間(
Input.GetMouseButtonUp(0)
がtrue
を返す時)、オブジェクトのRigidbody
に力を加えます。ここでは、AddForce
メソッドを使って、蓄積されたパワーに基づいてオブジェクトを前方に動かしています(力の大きさはpower * 2
)。 - パワーの値をデバッグログに出力し、スライダーの値をパワーに基づいて更新します(
slider.value = power * 0.1f;
)。
- マウスボタンが押されている間(
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PowerController : MonoBehaviour
{
private float power;
public Rigidbody rb;
public Slider slider;
void Start()
{
power = 0;
slider.value = 0;
}
void Update()
{
if (Input.GetMouseButton(0))
{
if (power < 10)
{
power += 0.1f;
}
}
if (Input.GetMouseButtonUp(0))
{
rb = GetComponent<Rigidbody>();
rb.AddForce(0, 0, power * 2, ForceMode.Impulse);
power = 0;
}
Debug.Log(power);
slider.value = power * 0.1f;
}
}
スクリプトの適用と設定
作成したPowerController
スクリプトをCubeオブジェクトにドラッグ&ドロップしてアタッチします。また、インスペクター画面でPowerController
スクリプトのPower Slider
に、UIで作成したSliderをドラッグ&ドロップして紐づけます。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-31_172602.png)
ゲームの実行と確認
以上で準備は完了です。Unityエディターで「再生」ボタンをクリックし、マウスの長押しでパワーが貯まり、離した瞬間にSphereが動くことを確認しましょう。また、Sliderがパワーの貯まり具合を視覚的に示していることもチェックしてください。
まとめ
Unityで「マウス長押しでパワーを貯め、オブジェクトを動かす」機能と、そのパワーをゲージで可視化する方法について学びました。初心者でも追いやすい内容を心がけましたが、いかがでしたか?この記事が、Unityでのゲーム開発の一助となれば幸いです。Unityの世界は奥が深く、学ぶべきことがまだまだたくさんあります。ぜひ、この知識を基にしてオリジナルのゲームを作ってみてください。