Foldout は、UI の折りたたみ可能なセクションです。Foldout のヘッダーをクリックすると、その中に含まれる要素を表示したり非表示にしたりできます。
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# クラス: Foldout
名前空間: UnityEngine.UIElements
基本クラス: BindableElement
この要素は以下のメンバー属性を持ちます。
| 名前 | 型 | 説明 |
|---|---|---|
text |
string |
トグルのラベルテキスト。 |
toggle-on-label-click |
boolean |
ユーザーがラベルをクリックしたときに Foldout の状態を切り替えるかどうか。 |
value |
boolean |
これは、Foldout のトグルの状態です。Foldout が開いていてそのコンテンツが表示されている場合は true、Foldout が閉じていてそのコンテンツが非表示の場合は false。 |
この要素は基本クラスから以下の属性を継承します。
| 名前 | 型 | 説明 | |||
|---|---|---|---|---|---|
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 の永続性が無効になります。詳細については、ビューデータの永続性を参照してください。 |
以下の表は、すべての C# パブリックプロパティ名と、それに関連する USS セレクターのリストです。
| C# プロパティ | USS セレクター | 説明 |
|---|---|---|
ussClassName |
.unity-foldout |
Foldout 要素の USS クラス名。 Unity はこの USS クラスを Foldout のすべてのインスタンスに追加します。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての Foldout に影響します。 |
toggleUssClassName |
.unity-foldout__toggle |
Foldout 要素内の Toggle サブ要素の USS クラス名。 Unity はこの USS クラスをすべての Foldout の Toggle サブ要素に追加します。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての 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 クラスを、すべての Foldout の Toggle サブ要素のチェックマークを表す VisualElement に追加します。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての Foldout コンテナに影響します。 |
|
textUssClassName |
.unity-foldout__text |
Foldout 内の Label 要素の USS クラス名。 Unity は、この USS クラスをすべての Foldout の Toggle サブ要素の Label に追加します。このクラスに適用されるスタイルは、ビジュアルツリーでスタイルシートの横または下に位置するすべての Foldout コンテナに影響します。 |
disabledUssClassName |
.unity-disabled |
local disabled 要素の USS 名。 |
Inspector または UI Toolkit Debugger の Matching Selectors セクション を使用して、階層のすべてのレベルで VisualElement のコンポーネントに影響する USS セレクターを確認することもできます。