[Unity] uGUIのスクロールバー(Scrollbar)の使い方

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

スクロールバー(Scrollbar)とは

スクロールバー(Scrollbar)は、一定範囲内で連続的な値を制御・表示するためのUIコンポーネントです。
スライダー(Slider)と似ていますが、スクロールバーは「コンテンツの表示範囲の移動」に特化したUIです。

デフォルト設定のスクロールバー(Scrollbar)表示例
  • スクロールバー(Scrollbar)の主な特徴
特徴内容
ハンドルのサイズ変更対応表示可能領域に応じてハンドルの大きさが変わる(≠ Slider)
値の範囲指定可能value, size, numberOfSteps などで範囲や精度を制御
水平方向・垂直方向対応Direction で LeftToRight / TopToBottom などを指定可能
UI ScrollRectと連動可能ScrollRect コンポーネントと組み合わせることで、スクロールビュー制御に使用可能
イベント通知機能あり値の変化に応じて onValueChanged が呼ばれる
  • スクロールバー(Scrollbar)の主な用途
用途具体例
スクロールビューの補助ScrollRect と連携して、縦横スクロールを視覚的に制御
テキストエリアのスクロール長文表示領域で現在の表示位置をユーザーに知らせたり移動させたりする
数値や進捗の可視化ゲージ・進捗バーとして代用(カスタマイズ次第で応用可能)
ステップ付き選択numberOfSteps を使って「段階付きスクロールバー」も実現可能

スクロールバー(Scrollbar)を構成するオブジェクト

Scrollbar
└── Sliding Area
    └── Handle
オブジェクト名機能カテゴリ役割
Slider本体スクロール値や方向、イベント管理を行う。
Imageコンポーネントと、Sliderコンポーネントを持つ。
Sliding Areaハンドルの稼働領域Handle の位置を制限する領域。
通常は RectTransform の操作で制御される。
Handle入力・表示ユーザーがドラッグする部分。
スクロール値に応じて位置が変化し、サイズも変動する。
Imageコンポーネントを持つ。

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

スクロールバー(Scrollbar)の基本的な使い方

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

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

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

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

  • Interactable
  • 遷移 (Transition)
  • ナビゲーション (Navigation)
  • 可視化 (Visualize)
  • Handle Rect
  • 向き (Direction)
  • 値 (Value)
  • サイズ (Size)
  • ステップ数 (Number Of Steps)
  • 値の変更時 (Single) (On Value Changed (Single))

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

Interactable

スクロールバー(Scrollbar)がユーザー操作を受け付けるかどうかを制御するプロパティです。

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

遷移 (Transition)

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

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

ナビゲーション (Navigation)

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

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

可視化 (Visualize)

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

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

Handle Rect

Scrollbar の中でユーザーが操作する「つまみ(ハンドル)」に相当する RectTransform を指定するプロパティです。
この「ハンドル」は、スクロール量に応じて位置が動いたり、内容量に応じてサイズが変わったりします。
デフォルトではSliding Areaの子オブジェクトであるHandleオブジェクトが指定されています。

  • 主な機能
機能項目内容
表示現在のスクロール位置を示す視覚的なインジケーター
操作ユーザーがドラッグやクリックで直接スクロール位置を操作できる UI 要素
サイズ変化size プロパティに応じてハンドルのサイズが自動的に変更される(可変幅)
値との連動value の変化によりハンドルの位置が動く

向き (Direction)

スクロールバーのハンドル(Handle)が動く方向、およびスクロールの値が変化する方向を決定するプロパティです。

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

値 (Value)

現在のスクロール位置を 0.0 ~ 1.0 の範囲で表す float 型のプロパティです。

  • 値の範囲と意味
値 (Value)意味
0.0スクロールの開始位置(先頭)
0.5中央付近の位置
1.0スクロールの終了位置(末尾)

サイズ (Size)

スクロールバー上の「ハンドル(Handle)」の表示サイズを割合(0〜1)で指定するプロパティです。

  • 値の範囲と意味
サイズ (Size)の値ハンドルの大きさ意味
0.1非常に小さい表示領域は全体の 10%、スクロール可能範囲が大きい
0.5トラックの半分の大きさ表示領域は全体の 50%(残り半分はスクロール可能)
1.0最大(トラック全体と同じ)スクロール不要(全内容が表示されている)
  • ScrollRect との連携

ScrollRect に Scrollbar を接続した場合、サイズは自動で設定されます。

ステップ数 (Number Of Steps)

スクロールバーの値(value)を離散的なステップ単位で動かすかどうかを制御するプロパティです。

  • 動作イメージ
ステップ数valueの値
0(デフォルト)連続値(例:0.12345、0.678など)
50.0, 0.25, 0.5, 0.75, 1.0(5段階)
100.0 ~ 1.0 を 10 等分(= 11ステップ)

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

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

public void OnScrollbarValueChanged(float value)
{
    Debug.Log("現在のスクロール値: " + value);
}
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次