UI Builder で UI を作成する方法を学ぶために、まずこの例を使って始めましょう。
UI Builder で UI を作成するには、以下の手順を行います。
始める前に、以下の点を理解しておいてください。
この例では、リストビューのランタイム UI の作成 の例のメインビューを作成します。背景としてルート要素を作成し、2 つのコンテナを作成します。1 つのコンテナには文字名リストが保存され、もう 1 つのコンテナには文字の詳細が保存されます。文字詳細コンテナでは、背景フレームと前景フレームを加えます。最後に、文字名のラベルを 2 つ加えます。この例では、文字名リスト入力 UI は作成しません。
新しいプロジェクトを作成し、画面全体を覆うルートビジュアル要素を作成します。ルート要素に背景色を設定し、すべての子要素をスクリーンの中央に配置します。
Unity で任意のテンプレートでプロジェクトを作成します。
Window > UI Toolkit > UI Builder を選択します。
UI Builder ウィンドウの Viewport ウィンドウの左上で、File > New を選択して新しい UXML ドキュメントを作成します。
MainView.uxml
と名前を付けて保存します。
Drag VisualElement from Library into the Hierarchy panel.
Tip: You can also double-click a control to add it to the Hierarchy panel.
Select the element from the Hierarchy panel.
In the Inspector panel, make sure Flex > Grow is 1
. This sets the flex-grow
property to 1
, making it cover the entire screen.
すべての子要素を中央に揃えるには、Align Items と Justify Content の両方を Center
に設定します。
Background > Color と移動し #732526
に設定します。
ルート要素の下に新しい VisualElement を作成します。この要素は、UI の左右のセクションの親コンテナになります。
Drag VisualElement from Library to the root VisualElement in the Hierarchy panel.
Select the element from the Hierarchy panel.
In the Inspector panel, set Flex > Direction to row
.
Size > Height に移動し、350
ピクセルに設定します。
コンテナの子要素として ListView を追加し、文字名を保存します。
Drag a ListView from the Library to the container VisualElement in the Hierarchy panel.
Select the element from the Hierarchy panel.
In the Inspector panel, set Name to CharacterList
.
Size > Width を 230
ピクセルに設定します。
Margin & Padding > Margin > Right に移動し 6
ピクセルに設定します。
Background > Color を #6E3925
に設定します。
Border > Color を #311A11
に設定します。
Border > Width を 4
ピクセルに設定します。
Border > Radius を 15
ピクセルに設定します。
文字の詳細コンテナを保持するために、#CharacterList
と同じ親の下に新しい VisualElement を追加します。この目的は、ユーザーが左側のリストから文字を選択すると、その文字の縦向き画像、名前、クラスを表示することです。
Drag a VisualElement from the Library to the container element in the Hierarchy panel. This is the container to hold all the elements on the right.
Select the element from the Hierarchy panel.
In the Inspector panel, set Align > Align Items to flex-end
.
Align > Justify Content を space-between
に設定します。
右のコンテナの子として別の VisualElement を追加します。
Select the element from the Hierarchy panel.
Size > Width を 276
ピクセルに設定します。
Align セクションで、Align Items と Justify Content の両方を center
に設定します。
Margin & Padding > Padding を 8
ピクセルに設定します。
Background > Color を #AA5939
に設定します。
Border > Color を #311A11
に設定します。
Border > Width を 4
ピクセルに設定します。
Border > Radius を 15
ピクセルに設定します。
これで、UI レイアウトは以下の画像のようになります。
個々の UI コントロールを文字詳細コンテナに追加します。最初のステップは、文字の縦向き画像の背景を追加することです。
Library の VisualElement を文字詳細コンテナにドラッグします。
Select the element from the Hierarchy panel.
Size セクションで、Width と Height の両方を 120
ピクセルに設定します。
Margin & Padding > Padding を 4
ピクセルに設定します。
Background > Color を #FF8554
に設定します。
文字詳細コンテナは、文字名リストコンテナと同じボーダースタイルを使用します。両方のコンテナに適用する USS クラスを作成します。
MainView.uss
という名前を付けて保存します。.border
と入力します。.border
セレクターが StyleSheet ウィンドウに表示されます。.border
を選択します。#311A11
.2
ピクセルに設定します。15
ピクセルに設定します。.border
を文字詳細コンテナ VisualElement にドラッグします。.border
を文字名リストコンテナ VisualElement にドラッグします。文字詳細コンテナの次は、実際の画像の前景を加えます。
Library の VisualElement を文字詳細コンテナにドラッグします。
Select the element from the Hierarchy panel.
Name を CharacterPortrait
に設定します。
Flex > Grow を 1
に設定し、画像が利用可能なスペースをすべて使えるようにします。
Background > Scale Mode を scale-to-fit
に設定します。すると、正しいアスペクト比を保ちながら、画像を拡大縮小して要素のサイズに合わせることができます。
2 つのラベルコントロールを文字詳細コンテナに加え、選択された文字名とクラスを表示します。
Drag Label from Library to the character details container in the Hierarchy panel.
Name
を CharacterName
に設定します。
Drag Label from Library to the character details container in the Hierarchy panel.
Name
を CharacterClass
に設定します。
#CharacterName
要素を選択します。
Text > Font Style を B
に設定します。
Text > Size を 18
ピクセルに設定します。
Viewport ウィンドウで、File > Save を選択して MainView.uxml
に変更を保存します。
UI Builder では、要素の数がまだ少ないうちは、要素を作成してインラインスタイルだけを実験的に使用することができます。より複雑な UI を構築するようになると、スタイルシートを使用してスタイルを管理する方が簡単です。UI Builder では、インラインのスタイルをスタイルシートに抽出できます。
.background
as the class name..background
クラスセレクターが作成され、ルートのビジュアル要素の UI ドキュメント (UXML) が更新され、インラインスタイルの代わりにクラスセレクターが使用されます。Create a list view runtime UI の例の作業を続けたい場合は、他のすべての要素のスタイルを抽出する手順を繰り返し、指示に従って例を作成できます。