Version: 2021.3
言語: 日本語
UXML 要素 TextField
UXML 要素 Toolbar

UXML 要素 Toggle

C# class: Toggle
Namespace: UnityEngine.UIElements
Base class: BaseBoolField

属性

The following table lists all the supported attributes.

名前 説明
binding-path string バインドされるべきターゲットプロパティのパス。
content-container string child elements are added to this element, usually this
focusable boolean 要素がフォーカス可能である場合は true。
label string フィールドの横に表示されるラベルを表す文字列。
name string The name of this VisualElement.

Use this property to write USS selectors that target a specific element.
The standard practice is to give an element a unique name.
picking-mode string mouseEvents または IPanel.Pick クエリの間にこの要素を選択 (ピック) できるかどうかを決定します。
style string Reference to the style object of this element.

Contains data computed from USS files or inline styles written to this object in C#.
tabindex int フォーカスリング内でフォーカス可能なものをソートするために使用される整数。0 以上であることが必要です。
text string Optional text that appears after the BaseBoolField.

Unity creates a Label automatically if one does not exist.
toolbar string Text to display inside an information box after the user hovers the element for a small amount of time.
usage-hints string A combination of hint values that specify high-level intended usage patterns for the VisualElement.
This property can only be set when the VisualElement is not yet part of a Panel. Once part of a Panel, this property becomes effectively read-only, and attempts to change it will throw an exception.
The specification of proper UsageHints drives the system to make better decisions on how to process or accelerate certain operations based on the anticipated usage pattern.
Note that those hints do not affect behavioral or visual results, but only affect the overall performance of the panel and the elements within.
It’s advised to always consider specifying the proper UsageHints, but keep in mind that some UsageHints might be internally ignored under certain conditions (e.g. due to hardware limitations on the target platform).
value boolean フィールドに関連付けられた値。
view-data-key string Used for view data persistence (ie. tree expanded states, scroll position, zoom level).

This is the key used to save/load the view data from the view data store. Not setting this key will disable persistence for this VisualElement.

Create a Toggle

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

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

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

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

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

Style the Toggle

To see which USS selectors affect the components of the Toggle at every level of its hierarchy, use the Matching Selectors section in the Inspector or the UI Toolkit Debugger.

簡単な Toggle の例を見るには、Unity で Window > UI Toolkit > Samples > Toggle を選択してください。

The following example uses a Toggle to create a conditional UI. The example creates a custom Editor window with two toggles. You can use the toggles to do the following:

  • ラベルの表示/非表示
  • ボタンの有効化/無効化

この例で作成するすべてのファイルは、GitHub リポジトリ にあります。

サンプルを作成するには以下を行います。

  1. 任意のテンプレートで Unity プロジェクトを作成します。

  2. Project ウィンドウに、Editor という名前のフォルダーを作成します。

  3. Editor フォルダーに、以下のコンテンツを含む ToggleExample という C# ファイルを作成します。

    using UnityEngine;
    using UnityEditor;
    using UnityEngine.UIElements;
    namespace Samples.Editor.Controls
    {
        public class ToggleExample : EditorWindow
        {
            private Toggle showToggle;
            private Toggle activateToggle;
            private Label labelToShow;
            private Button buttonToActivate;
            [MenuItem("Window/ToggleExample")]
            public static void OpenWindow()
            {
                var window = GetWindow<ToggleExample>("Controls: Toggle Sample");
                window.minSize = new Vector2(200, 170);
                EditorGUIUtility.PingObject(MonoScript.FromScriptableObject(window));
            }
            public void OnEnable()
            {
                showToggle = new Toggle("Show label")
                {
                    value = true
                };
                activateToggle = new Toggle("Active button")
                {
                    value = true
                };
                labelToShow = new Label("This label is shown when the above toggle is set to On");
                buttonToActivate = new Button(() => Debug.Log("Button pressed!"))
                {
                    text = "Active if above toggle is On"
                };
                rootVisualElement.Add(showToggle);
                rootVisualElement.Add(labelToShow);
                rootVisualElement.Add(activateToggle);
                rootVisualElement.Add(buttonToActivate);
                showToggle.RegisterValueChangedCallback(evt => labelToShow.visible = evt.newValue);
                activateToggle.RegisterValueChangedCallback(evt => buttonToActivate.SetEnabled(evt.newValue));
            }
        }
    }
    
  4. 例を試すには、メニューから Window > ToggleExample を選択してください。

その他の参考資料

UXML 要素 TextField
UXML 要素 Toolbar