Version: Unity 6.0 (6000.0)
言語 : 日本語
FloatField
GradientField

フォールドアウト

Foldout は、UI の折りたたみ可能なセクションです。Foldout のヘッダーをクリックすると、その中に含まれる要素を表示したり非表示にしたりできます。

Foldout
Foldout

Foldout の作成

Foldout には以下の要素があります。

  • Label: Foldout の名前として使用するラベル。
  • Toggle: クリックすると、コンテナのサブエレメントを展開したり折りたたんだりすることができます。デフォルトのチェックボックスではなく、矢印のように見えるようにスタイル設定されています。コンテナが折りたたまれていると、矢印は右を向いています。コンテナが展開されていると、矢印は下を向いています。
  • Container: コンテナには、Foldout をトグルするときに表示または非表示にするビジュアル要素が含まれています。

Foldout のコンテナには要素を追加することが可能で、表示/非表示機能は自動的に機能します。

以下の UI Document は、コンテナ内に 2 つのボタンを持つ Foldout を作成します。Foldout をトグルすると、2 つのボタンが表示または非表示になります。

<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
    <ui:Foldout text="Foldout" name="MyFoldout" value="true">
        <ui:Button text="First item" />
        <ui:Button text="Second item" />
    </ui:Foldout>
</ui:UXML>

ユーザーのアクションへの応答

Foldout とその Toggle サブ要素は、Change イベントに応答します。Toggle は、Foldout コンテナを非表示にしたり、表示したりします。

Foldout をブーリアン変数にバインドしたり、INotifyValueChanged<bool> インターフェースを通じて Foldout の値にアクセスすることができます。

以下の C# コードスニペットは、Foldout を作成し、その Foldout が展開されているかどうかを確認します。

// Create a new foldout, add two elements to it and add it to the container
var cSharpFoldout = new Foldout {text = "Elements"};
cSharpFoldout.Add(new Label("Indented Label"));
cSharpFoldout.Add(new Slider("Indented Slider", 0, 100));
container.Add(cSharpFoldout);

cSharpFoldout.RegisterValueChangedCallback(e =>
{
    // Check whether the foldout is expanded
    if (cSharpFoldout.value)
    {
        Debug.Log("Foldout is expanded");
    }
    else
    {
        Debug.Log("Foldout is collapsed");
    }
});

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

C# クラス: Foldout
名前空間: UnityEngine.UIElements
基本クラス: BindableElement

メンバー UXML 属性

この要素は以下のメンバー属性を持ちます。

名前 説明
text string トグルのラベルテキスト。
toggle-on-label-click boolean ユーザーがラベルをクリックしたときに Foldout の状態を切り替えるかどうか。
value boolean これは、Foldout のトグルの状態です。Foldout が開いていてそのコンテンツが表示されている場合は true、Foldout が閉じていてそのコンテンツが非表示の場合は false。

継承された UXML 属性

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

名前 説明
binding-path string バインドするターゲットプロパティのパス。 focusable boolean 要素がフォーカス可能である場合は true。
tabindex int フォーカスリング内でフォーカス可能な対象をソートするために使用される整数。0 以上の値に設定する必要があります。

この要素は 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 mouseEvents または 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-foldout Foldout 要素の USS クラス名。

Unity はこの USS クラスを Foldout のすべてのインスタンスに追加します。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての Foldout に影響します。
toggleUssClassName .unity-foldout__toggle Foldout 要素内の Toggle サブ要素の USS クラス名。

Unity はこの USS クラスをすべての FoldoutToggle サブ要素に追加します。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての Toggle サブ要素に影響します。
contentUssClassName .unity-foldout__content Foldout 内のコンテンツ要素の USS クラス名。

Unity はこの USS クラスを表示または非表示にする要素を含む VisualElement に追加します。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての Foldout コンテナに影響します。
inputUssClassName .unity-foldout__input Foldout 内の Label 要素の USS クラス名。

Unity はこの USS クラスを、Toggle の入力要素を含む VisualElement に追加します。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての Foldout コンテナに影響します。
.unity-foldout__checkmark Foldout 内の Label 要素の USS クラス名。

Unity はこの USS クラスを、すべての FoldoutToggle サブ要素のチェックマークを表す VisualElement に追加します。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての Foldout コンテナに影響します。
textUssClassName .unity-foldout__text Foldout 内の Label 要素の USS クラス名。

Unity は、この USS クラスをすべての FoldoutToggle サブ要素の Label に追加します。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての Foldout コンテナに影響します。
disabledUssClassName .unity-disabled local disabled 要素の USS 名。

Inspector または UI Toolkit Debugger の Matching Selectors セクション を使用して、階層のすべてのレベルで VisualElement のコンポーネントに影響する USS セレクターを確認することもできます。

追加リソース

FloatField
GradientField