RadioButton は、他の RadioButton とグループ化して使うことで、ユーザーが 1 つを選べるようになります。GroupBox を使用して RadioButton をグループ化できます。これを行わない場合は、パネル がデフォルトのグループとして機能します。
ノート: 要素を Inspector ウィンドウの他のフィールドと揃えるには、.unity-base-field__aligned USS クラスを適用します。詳細については、BaseField を参照してください。
UI Builder、UXML、または C# で RadioButton を作成できます。以下の C# の例では、同じコンテナ内に 2 つの新しい RadioButton を作成し、それらをパネルで論理的にグループ化しています。
var choice1 = new RadioButton() { text = "Choice 1" };
choice1.RegisterValueChangedCallback(v => Debug.Log("Choice 1 is : " + v.newValue));
var choice2 = new RadioButton() { text = "Choice 2" };
choice2.RegisterValueChangedCallback(v => Debug.Log("Choice 2 is : " + v.newValue));
container.Add(choice1);
container.Add(choice2);
以下は UXML で RadioButton を作成する例です。
<UXML xmlns="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements">
<GroupBox>
<RadioButton label="UXML Field 1" name="the-uxml-field1" />
<RadioButton label="UXML Field 2" name="the-uxml-field2" />
</GroupBox>
</UXML>
以下の C# の例では、RadioButton のカスタマイズ可能な機能の一部を示しています。
/// <sample>
// Note: See also RadioButtonGroup in the ChoiceField section of UI Toolkit Samples
// Get a reference to the first radio button from UXML and assign a value to it.
var uxmlField1 = container.Q<RadioButton>("the-uxml-field1");
var uxmlField2 = container.Q<RadioButton>("the-uxml-field2");
uxmlField1.value = true;
// Create two RadioButtons in a separate group, disable them, and give them a style class.
var groupBox = new GroupBox();
container.Add(groupBox);
var csharpField1 = new RadioButton("C# Field 1");
csharpField1.SetEnabled(false);
csharpField1.AddToClassList("some-styled-field");
groupBox.Add(csharpField1);
var csharpField2 = new RadioButton("C# Field 2");
csharpField2.SetEnabled(false);
csharpField2.AddToClassList("some-styled-field");
groupBox.Add(csharpField2);
csharpField1.value = uxmlField1.value;
// Mirror the value of the UXML field into the C# field.
uxmlField1.RegisterCallback<ChangeEvent<bool>>((evt) =>
{
csharpField1.value = evt.newValue;
});
uxmlField2.RegisterCallback<ChangeEvent<bool>>((evt) =>
{
csharpField2.value = evt.newValue;
});
/// </sample>
この例を Unity でライブ体験するには、Window > UI Toolkit > Samples の順に移動します。
C# クラス: RadioButton
名前空間: UnityEngine.UIElements
基本クラス: BaseBoolField
この要素は基本クラスから以下の属性を継承します。
| 名前 | 型 | 説明 |
|---|---|---|
binding-path |
string |
バインドするターゲットプロパティのパス。 |
focusable |
boolean |
要素がフォーカス可能である場合は true。 |
label |
string |
フィールドの横に表示されるラベルを表す文字列。 |
tabindex |
int |
フォーカスリング内のフォーカス可能な要素をソートするために使用される整数。0 以上の値に設定する必要があります。 |
text |
string |
BaseBoolField の後に表示される任意のテキスト。Label が存在しない場合、Unity は自動的に作成します。 |
toggle-on-label-click |
boolean |
ユーザーがラベルをクリックしたときにトグルをアクティベートするかどうか。 |
value |
boolean |
フィールドに関連付けられた値。 |
この要素は VisualElement から以下の属性も継承します。
| 名前 | 型 | 説明 |
|---|---|---|
content-container |
string |
子要素が追加されますが、通常は子要素は要素自体と同じです。 |
data-source |
Object |
この VisualElement にデータソースを割り当て、継承されたデータソースをオーバーライドします。 |
| このデータソースはすべての子に継承されます。 | ||
data-source-path |
string |
データソースから値へのパス。 |
data-source-type |
System.Type |
この VisualElement に割り当て可能なデータソースのタイプ。 この情報は、設計時に有効なデータソースを指定できない場合に、データソースパスフィールドを補完するヒントとして UI Builder でのみ使用されます。 |
language-direction |
UIElements.LanguageDirection |
要素のテキストの向きを示します。値は要素の子に伝播されます。 languageDirection を RTL に設定すると、テキストの反転と改行/折り返しの適切な処理による、右から左へ (RTL) の基本サポートが追加されます。ただし、包括的な RTL サポートは提供されません。これには、文字の並べ替えを含むテキストシェーピングと OpenType フォント機能のサポートが必要になるためです。将来のアップデートでは、言語、スクリプト、フォント機能の仕様を処理するための追加の API を含む、包括的な RTL サポートが予定されています。 このプロパティの RTL 機能を拡張するには、Unity Asset Store で入手可能なサードパーティ製のプラグインを探し、 ITextElementExperimentalFeatures.renderedText を利用してください。 |
name |
string |
この VisualElement の名前。 このプロパティを使用して、特定の要素を対象とする USS セレクターを記述します。要素には一意の名前を付けるのが標準的です。 |
picking-mode |
UIElements.PickingMode |
mouseEvent または IPanel.Pick クエリの間にこの要素を選択 (ピック) できるかどうかを決定します。 |
style |
string |
VisualElement スタイルの値を設定します。 |
tooltip |
string |
ユーザーが要素をマウスオーバーした後、わずかな時間、情報ボックス内に表示するテキスト。これはエディター UI でのみサポートされます。 |
usage-hints |
UIElements.UsageHints |
VisualElement の意図されている使用パターンの概要を指定するヒント値の組み合わせ。このプロパティは、VisualElement がまだ Panel の一部でない場合にのみ設定できます。Panel の一部になると、このプロパティは事実上読み取り専用となり、変更しようとすると例外がスローされます。適切な UsageHints を指定することで、予想される使用パターンに基づいて、特定の操作をどのように処理するか、または高速化するかについて、システムがより適切な判断を下すようになります。これらのヒントは動作や視覚的な結果には影響しませんが、パネルとその中の要素の全体的なパフォーマンスにのみ影響することに注意してください。常に適切な UsageHints を指定することを考慮するようお勧めしますが、特定の条件下 (例: ターゲットプラットフォームのハードウェア制限) では、一部の UsageHints が内部的に無視される可能性があることに留意してください。 |
view-data-key |
string |
ビューデータの永続性 (ツリーの展開状態、スクロール位置、ズームレベルなど) に使用されます。 このキーは、ビューデータストアからビューデータを保存およびロードするために使用されます。このキーを設定しないと、関連する VisualElement の永続性が無効になります。詳細については、ビューデータの永続性を参照してください。 |
以下の表は、すべての C# パブリックプロパティ名と、それに関連する USS セレクターのリストです。
| C# プロパティ | USS セレクター | 説明 |
|---|---|---|
ussClassName |
.unity-radio-button |
RadioButton 要素の USS クラス名。 Unity はこの USS クラスを RadioButton 要素のすべてのインスタンスに追加します。このクラスに適用されるスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべての RadioButton に影響します。 |
labelUssClassName |
.unity-radio-button__label |
RadioButton 要素のラベルの USS クラス名。 RadioButton にラベルがある場合、Unity はこの USS クラスを RadioButton の Label サブ要素に追加します。 |
inputUssClassName |
.unity-radio-button__input |
RadioButton 要素内の入力要素の USS クラス名。 Unity はこの USS クラスを RadioButton の入力サブ要素に追加します。入力サブ要素は、マニピュレーターへの応答を指定します。 |
checkmarkBackgroundUssClassName |
.unity-radio-button__checkmark-background |
RadioButton 要素内のチェックマークの背景の USS クラス名。 Unity はこの USS クラスを RadioButton のチェックマークの背景サブ要素に追加します。 |
checkmarkUssClassName |
.unity-radio-button__checkmark |
RadioButton 要素のチェックマークの USS クラス名。 Unity はこの USS クラスを RadioButton のチェックマークのサブ要素に追加します。 |
textUssClassName |
.unity-radio-button__text |
RadioButton 要素内のテキスト要素の USS クラス名。 Unity はこの USS クラスを RadioButton のテキストサブ要素に追加します。 |
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 クラス名。 |
Inspector または UI Toolkit Debugger の Matching Selectors セクション を使用して、階層のすべてのレベルで VisualElement のコンポーネントに影響する USS セレクターを確認することもできます。