Version: Unity 6.0 (6000.0)
言語 : 日本語
TemplateContainer
ToggleButtonGroup

トグル

トグルには画像とラベルが含まれます。ボタン などの他の標準 UI Toolkit コントロールと同様、トグルにはクリック可能なマニピュレーターが設定されており、MouseUpEventPointerUpEvent が登録されています。これらのイベントのいずれかがマニピュレーターをトリガーすると、トグルの値は、true から false、または false から true に変化します。トグルの現在の値の読み取りまたは設定ができます。トグルを Boolean 変数にバインドすることもできます。

ドロップダウンからの選択や有効なオプションなど、他の条件に基づいて要素の表示/非表示を設定できます。条件付き UI の例として、Camera Inspector があります。Camera Inspector では、Physical Camera モードを有効にすると追加のオプションが表示されます。

ノート: 要素を Inspector ウィンドウの他のフィールドと揃えるには、.unity-base-field__aligned USS クラスを適用します。詳細については、BaseField を参照してください。

トグルの作成

トグルは、UI Builder、UXML、C# で作成できます。

以下の C# の例では、特定のラベルで トグル を作成します。

Toggle myToggle = new Toggle("Click me");

Toggle のスタイル

デフォルトでは、トグルコントロールはチェックボックスとして表示されます。スタイルを適用して、一般的なトグルのような外観にすることができます。

トグルのチェックボックスのスタイルを設定するには、.unity-toggle__input.unity-toggle__checkmark のスタイルプロパティーを使用します。例えば、className という名前のクラスをトグルに適用したとします。以下の USS は、トグルを選択または解除したときにチェックボックスの背景画像を変更します。

/* Set the background image when the checkbox is selected. */
.className:checked > .unity-toggle__input > .unity-toggle__checkmark {
    background-image: url("path/to/image-file");
}

/* Set the background image When the checkbox is not selected. */
.className > .unity-toggle__input > .unity-toggle__checkmark {
    background-image: url("path/to/image-file"); 
}

以下は UXML でトグルを作成する例です。

<UXML xmlns="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements">
    <Toggle label="UXML Field" name="the-uxml-field" />
</UXML>

以下の C# の例は、トグルのカスタマイズ可能な機能の一部を示しています。

/// <sample>
// Get a reference to the field from UXML and assign a value to it.
var uxmlField = container.Q<Toggle>("the-uxml-field");
uxmlField.value = true;

// Create a new field, disable it, and give it a style class.
var csharpField = new Toggle("C# Field");
csharpField.value = false;
csharpField.SetEnabled(false);
csharpField.AddToClassList("some-styled-field");
csharpField.value = uxmlField.value;
container.Add(csharpField);

// Mirror the value of the UXML field into the C# field.
uxmlField.RegisterCallback<ChangeEvent<bool>>((evt) =>
{
    csharpField.value = evt.newValue;
});
/// </sample>

この例を Unity でライブ体験するには、Window > UI Toolkit > Samples の順に移動します。

その他の例は以下を参照してください。

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

C# クラス: Toggle
名前空間: UnityEngine.UIElements
基本クラス: BaseBoolField

継承された UXML 属性

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

名前 説明
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 の永続性が無効になります。詳細については、ビューデータの永続性を参照してください。

USS クラス

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

C# プロパティ USS セレクター 説明
ussClassName .unity-toggle トグル要素の USS クラス名。

Unity はこの USS クラスをトグル要素のすべてのインスタンスに追加します。このクラスに適用されるスタイルは、ビジュアルツリーのスタイルシートの横または下にあるすべてのトグルに影響します。
labelUssClassName .unity-toggle__label トグル要素のラベルの USS クラス名。

トグルにラベルがある場合、Unity はこの USS クラスを ToggleLabel サブ要素に追加します。
inputUssClassName .unity-toggle__input トグル要素内の入力要素の USS クラス名。

Unity はこの USS クラスを Toggle の入力サブ要素に追加します。入力サブ要素は、マニピュレーターへの応答を指定します。
noTextVariantUssClassName .unity-toggle--no-text テキストのないトグル要素の USS クラス名。

トグルにラベルがない場合、Unity はこの USS クラスを Toggle に追加します。
checkmarkUssClassName .unity-toggle__checkmark トグル要素内の画像の USS クラス名。

Unity は、チェックマーク画像がある Toggle の画像サブ要素にこの USS クラスを追加します。
textUssClassName .unity-toggle__text トグル要素内のテキスト要素の USS クラス名。

Unity は、この USS クラスを Toggle のテキストサブ要素に追加します。
mixedValuesUssClassName .unity-toggle__mixed-values 値が混在するトグル要素の USS クラス名

Unity はこの USS クラスを、値が混在する Toggle のチェックマークに追加します。
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 セレクターを確認することもできます。

追加リソース

TemplateContainer
ToggleButtonGroup