🎮
[Unity2D] おしゃれなスライダーを作ろう
はじめに
Unity2Dでおしゃれなスライダーを作ったので、備忘録として記事を残します。
Unityのチュートリアルを完了して自ら作品を作り始めたい人が対象です。
実装時間: 約10分
用意するもの
環境
Unity6000.1.4f1
画像
- background.png
background画像。スライダーの背景画像として使用。

- fill.png
fill画像。スライダーのFillの部分として表示される画像として使用。

- handle.png
handle画像。スライダーのハンドル部分の画像として使用。

完成品
以下のようなスライダーが出来ます。
Unity標準のSliderをカスタマイズしているので、デフォルトのスライダーと同じように使うことが出来ます。

作り方
1. プロジェクトを用意する
Unity6000.1.4f1 で 2Dプロジェクトを作成します。
今回、「2D(Bulid-In-Render Pipeline)」で作成しました。
未検証ですが、3DでもURPでも出来ると思います。
- Unityのバージョンが「
6000.1.4f1」であるか確認する - 「
2D(Bulid-In-Render Pipeline)」を選択する - 「
Create project」をクリックしてプロジェクトを作成する

2. 画像を追加する
- エクスプローラーから画像を選択して、Unityの
Projectパネルの中にドラック&ドロップする

- 画像を選択し、「
Sprite Editor」を開く

-
2つ目以降のスプライトを削除する

-
1つ目のスプライトの範囲を全体を覆うようにする

- 右上の「
Apply」を押して、変更を保存する

- もう片方の画像の対しても同じようにスプライトを1つに統合する
※ 編集が完了した後、各画像のスプライトが1つであることを確認してください。
3. スライダーを作成する
-
Hierarchyパネルで右クリックする -
Sliderオブジェクト(UI > Slider)を作成する

- 各
ImageコンポーネントのSource Imageをアサインする
-
Slider > BackgroundのImageコンポーネントのSource Imageにbacground画像をアサイン -
Slider > Fill Area > FillのImageコンポーネントのSource Imageにfill画像をアサイン -
Slider > Handle Slide Area > HandleのImageコンポーネントのSource Imageにhandle画像をアサイン
画像をアサインすると以下のようになります。
ここでは、わかりやすいようにSliderのValueを 0.5 に設定しています。

スタイルが崩れているため、いくつか設定をする必要があります。
- fill画像をマスクにする
デフォルトの設定ではfill画像はSliderのValueを変更すると横に拡縮するので、これをマスクに変更します。
Slider > Fill Area > FillのImageコンポーネントを設定します。

-
Fill Areaオブジェクトの横幅を変更する
Slider > Fill AreaのRect Transformコンポーネントを設定します。

- 各オブジェクトの縦幅を調整する
お好みで調整してください。ここでは以下に設定しました。
-
Slider > BackgroundのRect TransformコンポーネントのTopとBottomを-2に設定 -
Slider > Fill AreaのRect TransformコンポーネントのTopとBottomを-2に設定 -
Slider > Handle Slide AreaのRect TransformコンポーネントのTopとBottomを-4に設定
完成

応用例
- BGM&SEのスライダーとして使用する
Discussion