
トグルとスライダーの追加
Tutorial
Beginner
+10XP
30 mins
Unity Technologies

UI が複雑になると、必然的にトグルやスライダーを実装する必要が出てきますが、これらはそれぞれユーザーがアプリケーションとインタラクションするための独自の方法を可能にします。このチュートリアルでは、ユーザーが音楽をオン/オフできるトグルと、音量を調節できるスライダーを追加します。
このチュートリアルが終わるころには、次のことができるようになります:
- UI 設計におけるスライダーとトグルのユースケースを特定する。
- Event System を使って、簡単なトグル機能を実装する。
- Event System を使って、簡単なスライダー機能を実装する。
Languages available:
1. 概要
現在、Settings (設定) メニューは空っぽです。次のステップは、このメニューを設定項目で埋めることです。
このチュートリアルでは、音楽をオン/オフするためのトグルと、音量を調節するためのスライダーを追加します。必要であれば、追加の設定も追加できます。
このチュートリアルが終わる頃には、あなたのプロジェクトは下のサンプル画像のようになっているかもしれません:
2. 音楽のトグル設定の追加
前回のチュートリアルでは、ボタンに機能を追加しました。ボタンは非常に汎用性の高い UI 要素です。
もうひとつ、非常に便利な UI 要素が、ユーザーが機能をオン/オフできるトグル (toggle) です。
シーン内で音楽のオン/オフを切り替えられるトグルを追加してみましょう。
まず、設定メニューを表示させ、編集しやすいようにタイトルを非表示にしましょう。
1. Settings Menu オブジェクトを有効にして、他の UI 要素をすべて非表示にしてから、Scene ビューでキャンバスを編集するのに適切な 2D 表示になっていることを確認してください。
2. Settings Menu オブジェクトを右クリックして、UI > Toggle と選択し、Hierarchy で「Music Toggle」に名前を変更します。これにより、メニューの中央に位置するチェックボックスが追加され、その横に Toggle という文字が表示されます。
デフォルトでは Toggle ラベルは、より堅牢で最適化された TextMeshPro ではなく、Unity の古いテキストシステムが使用されています。そのシンプルなテキストを TextMeshPro に置き換えてみましょう。
3. Music Toggle ゲームオブジェクトを展開して Label オブジェクトを削除し、Music Toggle を右クリックして UI > Text - TextMeshPro と選択します。この場合、デフォルトの New Text オブジェクトが作成されますが、これはあまりにも大きく、位置もずれています。
4. テキストラベルをアプリの他の部分に合うように編集し、チェックボックスの位置を適切に変更し、親である Music トグルオブジェクトの位置をメニュー内の好きな場所に変更します。
トグルの見た目は良くなったが、選択してもまだ何も機能しません。そこで、このトグルを使えるようにしましょう。
3. シーンに音楽を加える
音楽のオン/オフを切り替える前に、シーンに音楽を追加する必要があります!
1. Hierarchy で、右クリックして Audio > Audio Source と進みます。これは基本的にシーンへスピーカーを追加するようなものです。
2. Audio Source コンポーネントの Audio Clip プロパティで、オブジェクトピッカーを使用して、プロジェクトで使用する音楽を選択します。
プロジェクトを再生することで、音楽をプレビューすることができます。今回はクラシックをご用意しましたが、他の曲をダウンロードしてインポートすることも可能です。
3. Audio Source コンポーネントで、Volume プロパティを 0.25-0.50 の間の値に設定します。音楽の音量が大きすぎたり、人を驚かせたりしないようにするためです。
4. 音楽のトグルを有効にする
音楽を再生できるようになったので、そのオン/オフを切り替える機能を追加してみましょう。
Button コンポーネントと同じように、トグルがユーザーによってオンまたはオフに切り替えられるたびに呼び出される特別な Unity イベントがあります。
1. Music Toggle オブジェクトを選択し、Toggle コンポーネントの下部にある On Value Changed (Boolean) イベントを探します。
On Value Changed (Boolean) イベントでは、「Boolean」がパラメーターとなります。この Boolean パラメーターは、その Boolean が true か false かで異なったことを実行することを意味します。この場合、true(トグルを選択)のときは音楽を再生し、false(トグルを非選択)のときは停止するようにします:
- Toggle on → OnValueChanged(true) → 音楽を再生
- Toggle off → OnValueChanged(false) → 音楽を停止
2. On Value Changed イベント内の + ボタンを選択して、新しいアクションをリストに追加し、Audio Source ゲームオブジェクトを割り当てます。これにより、Audio Source ゲームオブジェクトから関数を呼び出すことができるようになります。
3. 現在 No Function に設定されているアクションのドロップダウンを使用して、リストの上段から AudioSource > enabled と選択します。
トグルが true または false に設定されると、Audio Source の enabled プロパティも同様に設定されます。これで、ユーザーがトグルを有効/無効にすると、Audio Source コンポーネントも有効/無効になり、音楽のオン/オフができるようになりました。
アプリをテストしてみてください。トグルを使用すると、音楽が停止し、再生されるようになります。
また、音楽のボリュームを調整したい人もいるでしょう。次は、その機能を追加してみましょう!
5. 音量調節用のスライダーを追加
音量を調節するために、新しい UI 要素であるスライダー (Slider) を使用します。スライダーはとても便利で、音量、明るさ、テキストサイズ、価格範囲などの設定をより細かくコントロールすることができます。
1. Settings Menu オブジェクトを右クリックして、UI > Slider と選択し、Hierarchy で「Volume Slider」に名前を変更します。
2. Scene ビューの Rect Transform コンポーネントまたは Rect ツールを使って、スライダーのサイズを変更し、メニュー上の位置を適切に変更します。
3. Volume Slider ゲームオブジェクトを右クリックして、子オブジェクトとして Text - TextMeshPro ゲームオブジェクトを作成します。そして、テキストのスタイルと位置を編集して、スライダーの横に Volume と表示されるようにします。
6. 音量調節用スライダーを有効にする
スライダーの見た目が良くなったので、あとは実際に使ってみるだけです。スライダーがユーザーによって調整されるとき、Audio Source の音量はそれと共に動的に変化する必要があります。
1. Volume Slider オブジェクトを選択し、Slider コンポーネント内の On Value Changed (Single) イベントを見つけます。
2. リストに新しいアクションを追加し、Audio Source オブジェクトを割り当てます。
3. アクションのドロップダウンから、リストの上段にある AudioSource > volume と選択します。
この場合、プロパティは toggle で使用した Boolean ではなく、float になります。float は 10 進数で表される数値です。スライダーは、スライダーハンドルの位置によって、0 から 1 の間の 10 進数値に音量を設定します。
今、アプリをテストすると、何か変なことに気がつくでしょう。音楽は通常の音量で再生されますが、スライダーはデフォルトの位置であるため、ずっと左側に設定されたままです。シーンの開始時には、スライダーの位置は現在のボリュームと一致するはずです。
4. Slider コンポーネントで、デフォルトの Value プロパティを Audio Source の開始ボリュームと一致するように設定します。これで、シーン内のスライダーハンドルも動きます。
これで、スライダーは期待通りに機能するはずです!
7. 新しい UI 要素の追加
新しい UI 要素を作成し、それを簡単な機能と連携させる方法を理解していただけたと思います。
メニューに新しい設定をいくつか追加して、ユーザー体験をより快適に、より自由に操作できるようにしてみてください。
特定のオブジェクトを表示したり隠したりするトグル、ライトの明るさを調節するスライダー、夜と昼を切り替えるボタンなど、思いつく限りの楽しい機能を追加することができます。
UnityEvent にオブジェクトを割り当てて、関数をブラウズして試してみてください。そうすることで、何が可能なのか、いくつかのアイデアを得ることができるはずです。
8. 次のステップ
設定メニューの作成が完了しました!タイトル画面の要素を再有効化し、設定メニューをデフォルトで非表示にすることを忘れないでくださいね。
次のチュートリアルでは、UI をシーン内の現実世界の一部として見せることができる、全く異なる Canvas モードについて学びます。3D ワールドでの UI デザインの面白さが広がるはずです。