[Unity] uGUIのスライダー(Slider)の使い方

当ページのリンクには広告が含まれています。
目次

スライダー(Slider)とは

スライダー(Slider)は、「一定範囲内の数値をドラッグで調整する」ためのUIコンポーネントです。

デフォルト設定のスライダー(Slider)表示例
  • スライダー(Slider)の主な特徴
特徴内容
値の範囲指定が可能minValue~maxValue を設定して、任意の範囲の数値を扱える
現在値を取得/設定可能value プロパティで現在の数値を取得/変更できる
値の変更イベント対応onValueChanged イベントで、スライダーが動いたときに処理を呼び出せる
ハンドルのドラッグ対応マウス/タッチ/キーボードで直感的に操作できる
横・縦方向の変更可能Direction を指定して、水平/垂直スライダーを作成可能
フィルバー表示Fill を設定すれば、進捗状況を視覚的に表現可能
ステップ調整可能wholeNumbers を有効にすれば整数のみ(例:1, 2, 3…)に制限可能
  • スライダー(Slider)の主な用途
用途具体例
サウンド設定BGM/SE 音量調整バー
ゲーム設定画面の明るさ、感度、マウススピードなどの調整
ステータス表示HPゲージ/進行度バーとして利用(interactable = false にする)
数値入力スライダーで数値を決定し、テキストなどにリアルタイム反映
グラフィカル演出エネルギー充填、ロード進捗、タイマー表現など
カスタムUI色選択バー、スキル強化UI、武器の威力調整バーなどの応用

スライダー(Slider)を構成するオブジェクト

Slider
├── Background
├── Fill Area
│   └── Fill
└── Handle Slide Area
    └── Handle
オブジェクト名機能カテゴリ役割
Slider本体数値の変化を管理し、UIイベントを制御する。
Sliderコンポーネントを持つ。
Background背景スライダーのバー全体の背景部分(通常はグレーなど)。
Imageコンポーネントを持つ。
Fill Areaグループスライダーの塗りつぶし(進捗)部分のコンテナ。
Fill前景スライダーの進捗に応じて伸縮するバー部分。
Imageコンポーネントを持つ。
Handle Slide Areaグループハンドル(つまみ)が動く範囲を定義するコンテナ。
Handle操作入力マウスやタッチでドラッグ可能なつまみ部分(スライダー値を変更するUI)。
Imageコンポーネントを持つ。

Imageコンポーネントについては、下記の記事で詳しく解説しているので参照してください。

スライダー(Slider)の基本的な使い方

スライダー(Slider)を使用するには、UI要素を配置するためのCanvasが必要です。
もし、シーンにCanvasが無い場合は、Canvasを作成してください。

キャンバス(Canvas)の作成:
「ヒエラルキー(Hierarchy)」ウィンドウを右クリック⇒UI⇒キャンバス(Canvas)
を選択してCanvasを作成します。

スライダー(Slider)の作成:
「ヒエラルキー」ウィンドウのCanvasオブジェクトを右クリック⇒UI⇒スライダー(Slider)
を選択してSliderをCanvasに追加します。

Sliderコンポーネントでは以下の項目を設定できます。

  • Interactable
  • 遷移 (Transition)
  • ナビゲーション (Navigation)
  • 可視化 (Visualize)
  • 塗りつぶし矩形 (Fill Rect)
  • ハンドル用の矩形 (Handle Rect)
  • 向き (Direction)
  • Min Value
  • Max Value
  • 総数 (Whole Numbers)
  • Value
  • 値の変更時 (Single) (On Value Changed (Single))

順番に解説していきます。

Interactable

スライダー(Slider)がユーザー操作を受け付けるかどうかを制御するプロパティです。

詳細は、Button (Legacy)の記事で解説していますので、そちらを参照してください。

遷移 (Transition)

スライダー(Slider)の状態(通常/ホバー/クリック/無効)に応じて、見た目を変える仕組みです。

詳細は、Button (Legacy)の記事で解説していますので、そちらを参照してください。

ナビゲーション (Navigation)

キーボード・ゲームパッドなどの入力デバイスを使って UI を移動(フォーカス)するための制御機能です。

詳細は、Button (Legacy)の記事で解説していますので、そちらを参照してください。

可視化 (Visualize)

Inspector の Navigation セクション右上に表示される Visualize ボタンをクリックすると、
Sceneビューに「矢印(Arrow)」が表示され、他のUIへのナビゲーション接続が見えるようになります。

これは、キーボードやゲームパッドによるUI移動経路を直感的に確認するためのデバッグツールです。

塗りつぶし矩形 (Fill Rect)

スライダーの進捗(=現在の値)に応じて、バーが「塗りつぶされる」エリアを指定するプロパティです。
デフォルトでは子オブジェクトの Fillがアサインされています。

設定対象にするオブジェクトは、以下の要件を満たす必要があります。

要件内容
コンポーネントImage(もしくは RawImage)を持つ必要あり
UI構造上の位置Sliderの子孫オブジェクトであること(Fill Area 内など)
対応モードImage.type = Filled でも Simple でも利用可能

ハンドル用の矩形 (Handle Rect)

スライダー上でユーザーがつまんで操作できる「ハンドル(つまみ)」の RectTransform を指定するプロパティです。
※スライダーの「現在値」を直接ドラッグで変更できる、操作用のUIパーツにあたります。
デフォルトでは子オブジェクトの Handle がアサインされています。

  • 主な機能と操作
項目内容
表示・移動スライダーの値に応じて、ハンドルの位置が自動でスライドする
入力の受付ユーザーがマウス・タッチでドラッグすることでスライダー値を変更できる
対象となる範囲Handle Slide Area 内で Direction に応じた軸でのみ移動

向き (Direction)

スライダーの値の進行方向(=塗りつぶしやハンドルが動く方向)を決定するプロパティです。

  • 選択可能な向きの種類
値(列挙体)表示と操作の方向
左から右 (Left To Right)値が小 ⇒ 大になるほど、ハンドルとバーが左 ⇒ 右へ進む
右から左 (Right To Left)値が小 ⇒ 大になるほど、右 ⇒ 左へ進む(反転)
下から上 (Bottom To Top)値が小 ⇒ 大になるほど、下 ⇒ 上へ進む(縦型スライダー)
上から下 (Top To Bottom)値が小 ⇒ 大になるほど、上 ⇒ 下へ進む(縦型スライダーの反転)

Min Value

スライダーが取りうる値の範囲における「最小値(下限)」を設定するプロパティです。

Max Value

スライダーが取りうる数値の「最大値(上限)」を指定するプロパティです。

総数 (Whole Numbers)

スライダーの値を「整数値のみに制限するかどうか」を指定するプロパティです。

  • 挙動の違い
Whole Numbers の状態値の動き例(Min: 0, Max: 5)
OFF(デフォルト)float 単位で連続値が扱える0.00, 0.01, 1.37, 2.8, 5.00
ONint 単位で段階的に切り替え0, 1, 2, 3, 4, 5

Value

スライダーが現在示している値そのもの(ユーザーが操作中/設定中の数値)を表すプロパティです。

  • Valueの特性
項目内容
データ型float(※wholeNumbers = true で整数として扱える)
初期値minValue に一致(デフォルトでは 0)
範囲minValue ≦ value ≦ maxValue
UIとの連動Fill や Handle の表示位置に連動

値の変更時 (Single) (On Value Changed (Single))

スライダーの値が変化したときに自動的に呼び出されるイベント(UnityEvent) です。

public void OnSliderValueChanged(float value)
{
    Debug.Log("スライダーの値が変更されました:" + value);
}
  • イベントを発行させずに値を変更する方法
slider.SetValueWithoutNotify(50f); // onSliderValueChanged を呼ばない
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次