UnityUnityメモ

初心者向け:Unityスライダーでオブジェクトの大きさを調整する方法

Unity

はじめに

こんにちは!今回は、UnityでUIスライダーを使ってオブジェクトのサイズを調整する方法を紹介します。初心者でも簡単にできるので、一緒にやってみましょう!

Unityを触ったことがないという方はコチラの記事から見てみてください!



1.シーンに必要なオブジェクトを配置する

まずは、シーンに必要なオブジェクトを配置していきます。

スライダーを作成する

  1. ヒエラルキーウィンドウで右クリックして「UI」→「Slider」を選びます。
  2. これでシーンにスライダーが追加されました。

キューブを作成する

  1. ヒエラルキーウィンドウで右クリックして「3D Object」→「Cube」を選びます。
  2. キューブがシーンに追加されました。



2.スクリプトを作成する

次に、スライダーの値に応じてキューブのサイズを変更するスクリプトを作成します。

  1. プロジェクトウィンドウで右クリックして「Create」→「C# Script」を選びます。
  2. スクリプトの名前を「SliderControl」に変更します。
  3. スクリプトをダブルクリックして開き、以下のコードを入力します。

コード全体の説明

このスクリプトは、ユーザーがスライダーを動かすと、それに連動して特定のゲームオブジェクトのサイズが変更されるというものです。

各部分の説明

  1. 宣言部分
    • UnityEngineUnityEngine.UIという名前空間を使用します。これにより、Unityの基本機能やUI(ユーザーインターフェース)関連の機能が使えます。
  2. クラス定義
    • SliderControlというクラスを定義しています。このクラスはMonoBehaviourを継承しており、Unityのコンポーネントとして使えます。
    • public Slider sizeSlider; は、インスペクターからスライダーを割り当てるための変数です。
    • public GameObject objectToResize; は、サイズを変更する対象のゲームオブジェクトを割り当てるための変数です。
  3. Startメソッド
    • Startメソッドは、ゲームが始まると最初に呼ばれます。
    • sizeSlider.onValueChanged.AddListener(ChangeObjectSize); で、スライダーの値が変わったときにChangeObjectSizeというメソッドが呼ばれるようにリスナーを追加しています。
  4. ChangeObjectSizeメソッド
    • ChangeObjectSizeメソッドは、スライダーの値を引数として受け取り、その値を使ってobjectToResizeのサイズを変更します。
    • objectToResize.transform.localScale = new Vector3(size, size, size); で、オブジェクトのスケール(大きさ)を新しいサイズに設定します。この場合、x, y, zの全ての方向で同じサイズにします。

全体の動き

  1. ゲームが始まると、Startメソッドが呼ばれ、スライダーの値が変わったときにChangeObjectSizeメソッドが呼ばれるようになります。
  2. ユーザーがスライダーを動かすと、ChangeObjectSizeメソッドが実行され、スライダーの値に基づいて指定されたゲームオブジェクトのサイズが変更されます。
using UnityEngine;
using UnityEngine.UI;

public class SliderControl : MonoBehaviour
{
    public Slider sizeSlider; // スライダーをインスペクターから割り当てる
    public GameObject objectToResize; // サイズを変更するオブジェクトをインスペクターから割り当てる

    void Start()
    {
        sizeSlider.onValueChanged.AddListener(ChangeObjectSize);
    }

    void ChangeObjectSize(float size)
    {
        objectToResize.transform.localScale = new Vector3(size, size, size);
    }
}

スクリプトのアタッチ

  1. ヒエラルキーウィンドウをクリックして「CreateEmpty」を選択して「空のGameObject」を作成します。
  2. スクリプト「SliderControl」をドラッグ&ドロップしてアタッチします。

スクリプトを設定する

  1. スライダーとキューブをスクリプトに設定します。インスペクターウィンドウで「Size Slider」と「objectToResize」にそれぞれ対応するオブジェクトをドラッグ&ドロップします。



3.動作を確認する

これで準備完了です!シーンを再生して、スライダーを動かしてみましょう。キューブのサイズがスライダーに応じて変わるはずです。

お疲れ様でした!これでUIスライダーを使ってオブジェクトのサイズを調整する方法がわかりましたね。簡単でしたね!ぜひ他のオブジェクトでも試してみてください。

おすすめのアセット

「Super Clean UI Flat Pack」は、2Dゲームやアプリのユーザーインターフェース(UI)を簡単にデザインできるアイコンパックです。このパックには、シンプルでモダンなデザインのアイコンが300種類以上含まれており、どんなプロジェクトにもマッチします。例えば、メニュー、ボタン、ナビゲーションバーなど、さまざまな用途に使用可能です。