スポンサーリンク
スポンサーリンク
UnityUnityメモ

Unityでパワーゲージ表示の実装方法

Unity

はじめに

Unityでゲームを作っていると、「チャージして何かをする」という機能を実装したい場面が出てきます。今日は、「マウス長押しでパワーを貯め、オブジェクトを動かす」機能を実装し、そのパワーをゲージで可視化する方法について、初心者にも分かりやすく解説します。

Unityプロジェクトの準備

まず、Unityを開いて新しいプロジェクトを作成しましょう。プロジェクト名は何でも構いません、例として「PowerGaugeDemo」などと付けるとよいと思います。必要なアセットがある場合は、事前にインポートしておきましょう。

オブジェクトの準備

Unityエディターで、シーンにオブジェクトを追加します。例として、動かしたいオブジェクトを「Cube」とし、UIとしてパワーゲージを表示するための「Slider」を使用します。CubeはHierarchyで右クリック→3D Object→Cubeを選択して作成し、SliderはHierarchyで右クリック→UI→Sliderを選択して作成します。

ゲージのデザイン等の変更方法はこちらの記事を参考にしてください。

スクリプトの作成

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をドラッグ&ドロップして紐づけます。

ゲームの実行と確認

以上で準備は完了です。Unityエディターで「再生」ボタンをクリックし、マウスの長押しでパワーが貯まり、離した瞬間にSphereが動くことを確認しましょう。また、Sliderがパワーの貯まり具合を視覚的に示していることもチェックしてください。

まとめ

Unityで「マウス長押しでパワーを貯め、オブジェクトを動かす」機能と、そのパワーをゲージで可視化する方法について学びました。初心者でも追いやすい内容を心がけましたが、いかがでしたか?この記事が、Unityでのゲーム開発の一助となれば幸いです。Unityの世界は奥が深く、学ぶべきことがまだまだたくさんあります。ぜひ、この知識を基にしてオリジナルのゲームを作ってみてください。

おすすめのアセット

スポンサーリンク
C-BA memo
タイトルとURLをコピーしました