Version: 2022.3
言語: 日本語
UXML 要素 DoubleField
UXML 要素 EnumField

UXML 要素 DropdownField

DropdownField は、ユーザーがリストから値を選択するためのものです。コントロールをクリックすると複数の選択肢を提示するドロワーが開き、ユーザーは そのうち 1 つを選択できます。常にすべての選択肢を表示したい場合は、RadioButtonGroupを を使用します。

ユーザーのアクションに応答する

DropdownField は Change イベント に応答します。

DropdownField を、選択された選択肢の値を保持する文字列変数に紐づけることができます。

UI Builder で DropdownField のオプションを加える

DropdownField にオプションを追加するには、DropdownField の Inspector で、Choices にカンマ区切りでオプションを入力します。

デフォルト値を設定するには、DropdownField の Inspector で、Index にオプションの番号を0 から順に入力します。

C# スクリプトで DropdownField を作成する

以下の C# コードスニペットは、3 つのオプションを持つ DropdownField を作成します。デフォルトで、DropdownField は最初のオプションを選択します。

var dropdown = new DropdownField("Options", new List<string> { "Option 1", "Option 2", "Option 3" }, 0);
dropdown.RegisterValueChangedCallback(evt => Debug.Log(evt.newValue));
rootVisualElement.Add(dropdown);

DropdownField のスタイルを変更する

USS ファイルのデフォルトの Panel Settings フィールドをオーバーライドすると、Unity の DropdownField のスタイルを変更できます。

  1. Hierarchyウィンドウで、UI ドキュメント (.uxml) を選択します。
  2. Panel SettingsPanel Settings アセットとして設定します。既存の Panel Settings アセットがない場合は、ダイアログの指示に従って作成してください。
  3. Panel Settings アセットの Theme Style Sheet を割り当てます
  4. Project ウィンドウで、TSS ファイルを選択します。
  5. Style Sheets に移動し、Add (+) ボタンを選択します。
  6. Style SheetUSS ファイル に設定します。

DropdownField の使い方を学ぶ最良の方法は、例使って試してみることです。DropdownField の例を見るには、Unityで Window > UI Toolkit > Samples > DropdownField を選択します。

C# の基本クラスと名前空間

C#クラス: DropdownField
名前空間: UnityEngine.UIElements
基本クラス: PopupField_1

継承された UXML 属性

この要素は基本クラスから以下の属性を継承します。

名前 説明
binding-path string バインドされるべきターゲットプロパティのパス。
choices string ポップアップメニューに表示する選択肢のリストです。
focusable boolean 要素がフォーカス可能である場合は true。
index int ポップアップメニューで、現在選択されているインデックスです。
label string フィールドの横に表示されるラベルを表す文字列。
tabindex int フォーカスリング内でフォーカス可能なものをソートするために使用される整数。0 以上であることが必要です。

この要素は、VisualElement から以下の属性も継承します。

名前 説明
content-container string 子要素はそれに追加されますが、通常は要素自体と同じです。
name string この VisualElement の名前。

このプロパティを使用して、特定の要素を対象とする USS セレクターを記述します。要素には一意の名前を付けるのが標準的です。
picking-mode UIElements.PickingMode mouseEvents または IPanel.Pick クエリの間にこの要素を選択 (ピック) できるかどうかを決定します。
style string この要素のスタイルオブジェクトへの参照。

C# でこのオブジェクトに書き込まれた USS ファイルまたはインラインスタイルから計算されたデータが含まれます。
toolbar string ユーザーが要素をマウスオーバーした後、わずかな時間、情報ボックス内に表示するテキスト。これはエディター UI でのみサポートされます。
usage-hints UIElements.UsageHints VisualElement の高レベルの使用パターンを指定するヒント値の組み合わせ。このプロパティは、VisualElement がまだ Panel の一部でない場合にのみ設定できます。Panel の一部になると、このプロパティは事実上読み取り専用となり、変更しようとすると例外がスローされます。適切な UsageHints を指定することで、予想される使用パターンに基づいて、特定の操作をどのように処理するか、または高速化するかについて、システムがより適切な判断を下すようになります。これらのヒントは動作や視覚的な結果には影響しませんが、パネルとその中の要素の全体的なパフォーマンスにのみ影響することに注意してください。常に適切なUsageHints を指定することを考慮することをお勧めしますが、特定の条件下 (例えば、ターゲットプラットフォームのハードウェア制限など) では、いくつかの UsageHints が内部的に無視される可能性があることに留意してください。
view-data-key string ビューデータの永続性 (ツリーの展開状態、スクロール位置、ズームレベルなど) に使用されます。

これは、ビューデータストアからビューデータを保存/ロードするために使用されるキーです。このキーを設定しないと、この VisualElement の永続性が無効になります。

USS クラス

以下の表は、すべての C# パブリックプロパティ名と、それに関連する USS セレクターのリストです。

C# プロパティ USS セレクター 説明
ussClassName .unity-popup-field この型の要素の USS クラス名。
labelUssClassName .unity-popup-field__label この型の要素のラベルの USS クラス名。
inputUssClassName .unity-popup-field__input この型の要素の入力要素の USS クラス名。
ussClassName .unity-base-popup-field この型の要素の USS クラス名。
textUssClassName .unity-base-popup-field__text この型の要素のテキスト要素の USS クラス名。
arrowUssClassName .unity-base-popup-field__arrow この型の要素の矢印インジケーターの USS クラス名。
labelUssClassName .unity-base-popup-field__label この型の要素のラベルの USS クラス名。
inputUssClassName .unity-base-popup-field__input この型の要素の入力要素の USS クラス名。
ussClassName .unity-base-field この型の要素の USS クラス名。
labelUssClassName .unity-base-field__label この型の要素のラベルの USS クラス名。
inputUssClassName .unity-base-field__input この型の要素の入力要素の USS クラス名。
noLabelVariantUssClassName .unity-base-field--no-label ラベルがない場合の、この型の要素の USS クラス名。
labelDraggerVariantUssClassName .unity-base-field__label--with-dragger この型の要素にドラッガーがアタッチされている場合のラベルの USS クラス名。
mixedValueLabelUssClassName .unity-base-field__label--mixed-value 混合値を示す要素の USS クラス名
alignedFieldUssClassName .unity-base-field__aligned インスペクター要素で整列される要素の USS クラス名
disabledUssClassName .unity-disabled ローカルで無効にされた要素の USS クラス名。

その他の参考資料

UXML 要素 DoubleField
UXML 要素 EnumField