Toggle Button ノードを使用する

複数のトグル状態を持つことができるボタンを使ったインタラクティブな操作を作成するには、Toggle Button ノードを使用します。

2つの状態を持つトグルボタンの作成 と 2 つ以上の状態を持つトグルボタンの作成 を参照してください。

Toggle Button 3D を使用して3Dトグルボタンを作成し、Toggle Button 2D を使用して2Dトグルボタンを作成します。Toggle Button ノードを作成した後、そのノードにトグルボタンの視覚的表現を作成するためのノードを追加します。

../../_images/toggle-button1.gif

Toggle Button を作成すると、Kanzi はデフォルトでそのノードに Toggle Button: トリガーを追加します。

  • Toggle Button: Toggled On

  • Toggle Button: Toggled Off

  • Toggle Button: State Toggled

トグルの変更に反応する を参照してください。

Toggle Button ノードは Focusable プロパティが有効になっており、デフォルトでフォーカスを受け取ることができます。Toggle Button ノードにフォーカスがある場合、そのボタンを押すには、デフォルトのキーボードキー Space、Enter、および Enter をテンキーで使用できます。

フォーカスの使用 を参照してください。

例えば、トグルボタンのオンとオフの状態の違いを示すには、次のことができます。

  • トグルボタンのビジュアル表現のマテリアルまたは色を切り替えます。

  • トグルボタンの2つの異なるビジュアル表現をアタッチし、それらの可視性を切り替えます。

  • トグルボタンの2つの異なるビジュアル表現をアタッチし、それらの Blend Intensity プロパティ値をアニメーション化することで、2つの間を遷移します。

トグルボタンの作成方法を学ぶには、トグルボタンチュートリアルを完了してください。チュートリアル: トグルボタンの作成 を参照してください。

2つの状態を持つトグルボタンの作成

2つの状態を持つトグルボタンを作成するには、

  1. Node Tree Alt を押しながら右クリック でトグルボタンを作成したいノードを選択し、Toggle Button 3D または Toggle Button 2D のいずれかを選択します。

    3Dノードは、Scene ノードのような3Dノード内でのみ作成でき、2Dノードは2Dノード内でのみ作成できます。

    ../../_images/create-toggle-button-2d.png
  2. Node Tree で Toggle Button ノードを選択し、State Tools で Create State Manager をクリックして、Toggle Button ノードにステートマネージャーを作成します。

    ../../_images/create-state-manager2.png
  3. State Tools で、Create State を2回クリックして2つのステートを作成します。各ステートの名前をダブルクリックして、ステートの名前を変更します。

    例えば、1つの状態を On、もう1つを Off と名付けます。

    On ステートは、トグルボタンがオンになっているときのアプリケーションの状態を定義し、Off ステートは、トグルボタンがオフになっているときの状態を定義します。

    ../../_images/rename-toggle-button-states.png
  4. Node Tree で Toggle Button ノードの視覚的な形状を作成し、On 状態のときの外観を設定します。

    例えば、Toggle Button 2D ノードを作成した場合、そのノードにトグルボタンがオンとオフになったときに表示されるインジケーターを表す Image ノードを追加します。

    ../../_images/create-indicator.png
  5. インジケーターを Preview に配置し、State Tools で On 状態の上にある image0 をクリックして、現在の外観をその状態に保存します。

    ../../_images/add-indicator-to-on-state.png
  6. 前の2つのステップを繰り返して、トグルボタンの Off ステートを作成します。

    ../../_images/add-indicator-to-off-state.png
  7. State Tools で、<No Controller Property> ドロップダウンメニューをクリックし、Toggle Button > Toggle State プロパティを選択します。

    ステートマネージャーでは、Controller Property として選択したプロパティの値が、ステートグループ内の各ステートがアクティブになる条件を定義します。

    ../../_images/toggle-state-controller-property.png
  8. State Tools で、各ステートのコントローラープロパティの値を設定します。

    • On ステートの値を 1 に設定します。

    • Off ステートでは、値を 0 に設定したままにしてください。

    ../../_images/set-controller-property.png
  9. State Tools で、Edit State Manager をクリックして State Tools を非アクティブ化します。

    ../../_images/deactivate-state-tools.png
  10. Preview でトグルボタンのビジュアル表現をクリックすると、作成した状態間をトグルし、トグルボタンの外観が変わります。

2 つ以上の状態を持つトグルボタンの作成

2 つ以上の状態を持つトグルボタンを作成するには:

  1. Node Tree Alt を押しながら右クリック でトグルボタンを作成したいノードを選択し、Toggle Button 3D または Toggle Button 2D のいずれかを選択します。

    3Dノードは、Scene ノードのような3Dノード内でのみ作成でき、2Dノードは2Dノード内でのみ作成できます。

  2. Node Tree で Toggle Button ノードを選択し、Properties で Toggle State Count プロパティを追加して、トグルボタンに持たせたいトグル状態の数を設定します。

    例えば、3つの状態を持つトグルボタンを作成するには、Toggle State Count プロパティを 3 に設定します。

    ../../_images/toggle-state-count-set-3.png
  3. Node Tree で Toggle Button ノードを選択し、State Tools で Create State Manager をクリックして、Toggle Button ノードにステートマネージャーを作成します。

  4. State Tools で、ステートを作成するために image1 を好きなだけクリックし、各ステートの名前をダブルクリックして、ステートの名前を変更します。

    例えば、3つの状態を持つトグルボタンを作成する場合、最初の状態を First、2番目の状態を Second、3番目の状態を Third と名付けます。各状態は、トグルボタンがその状態にあるときのアプリケーションの状態を定義します。

    ../../_images/toggle-button-three-states.png
  5. Node Tree で Toggle Button ノードのビジュアルシェイプを作成し、最初のステートにあるときの外観を設定します。

    例えば、3Dトグルボタンを作成した場合、Text Block 3D を追加し、Text プロパティを First に設定します。

  6. State Tools で、First ステートの上にある image3 をクリックして、現在の外観をそのステートに保存します。

    ../../_images/toggle-button-save-first-state.png
  7. トグルボタンにステートがあるだけ、前の2つのステップを繰り返します。各ステートに対して、Text プロパティに異なる値を設定し、その値を異なるステートに保存します。

  8. State Tools で、<No Controller Property> ドロップダウンメニューをクリックし、Toggle Button > Toggle State プロパティを選択します。

    ステートマネージャーでは、Controller Property として選択したプロパティの値が、ステートグループ内の各ステートがアクティブになる条件を定義します。

    ../../_images/toggle-state-controller-property.png
  9. State Tools で、各ステートのコントローラープロパティの値を設定します。

    例えば、3つの状態を持つトグルボタンの場合、最初の状態の値を 0 に、2番目の状態の値を 1 に、3番目の状態の値を 2 に設定します。

    ../../_images/toggle-button-set-toggle-state-controller-property.png
  10. State Tools で、Edit State Manager をクリックして State Tools を非アクティブ化します。

  11. Preview でトグルボタンのビジュアル表現をクリックすると、作成した状態間をトグルし、トグルボタンの外観が変わります。

トグルの変更に反応する

Toggle Button トリガーを使用して、ユーザーがトグルボタンを切り替えたときに反応することができます。トリガーの使用方法について詳しくは、トリガーの使用 を参照してください。

Toggle Button ノードを作成すると、Kanzi はデフォルトで次のトリガーをそのノードに追加します。

ネーム (Name)

ディスクリプション (Description)

State Toggled

State Toggled トリガーは、Toggle Button ノードのトグル状態が変化したときに発動します。

Toggled Off

Toggled Off トリガーは、2つの状態を持つ Toggle Button ノードがオフに切り替えられたときに発動します。

Toggled On

Toggled On トリガーは、2つの状態を持つ Toggle Button ノードがオンに切り替えられたときに作動します。

トグルの変更に反応するには:

  1. Prefabs または Node Tree で、反応したいトグルの Toggle Button ノードを選択します。

    例えば、2つの状態を持つトグルボタンを作成し、そのトグルボタンを選択します。2つの状態を持つトグルボタンの作成 を参照してください。

  2. Node Components > Triggers Alt を押しながら右クリック で Toggle Button トリガーを使用して、設定したいアクションを選択し、そのアクションを構成します。

    例えば、Toggle Button: Toggled On トリガーで Write Log アクションを作成し、ユーザーがトグルボタンをオンにしたときに Log ウィンドウに書き込みたいメッセージを Log Text に設定します。

    Write Log アクションについて詳しく知るには、Write Log アクションを使用する を参照してください。

    ../../_images/toggled-on-add-write-log.png ../../_images/write-log-toggled-on.png

バインディングを使用してトグル状態を更新する

バインディングを使用して Toggle Button ノードのトグル状態を更新するには、to-sourceまたは双方向バインディングを使用します。トグルボタンを切り替えると、そのトグルボタンは内部的に Toggle State プロパティを対象とする一方向バインディングを上書きします。バインディング (Bindings) を参照してください。

例えば、トグルの状態を更新するためにto-sourceバインディングを使用するには:

  1. バインディングでトグル状態を更新したい Toggle Button ノードを作成します。

    例:

    1. Node Tree で、Stack Layout 2D ノードを作成します。

      ../../_images/stack-layout.png
    2. Asset Packages > Factory Content から、Toggle Button を Node Tree にドラッグし、Stack Layout 2D ノードにドロップします。Factory Content アセット を参照してください。

      ../../_images/asset-packages-toggle-button.png ../../_images/node-tree-fc-toggle-button.png
  2. Toggle Button ノードのトグル状態をバインドしたいコントロールを作成します。

    例:

    1. Asset Packages > Factory Content から、Slider を Node Tree にドラッグし、Stack Layout 2D ノードにドロップします。Properties で、スライダーの最小値と最大値を追加して設定します。Factory Content のスライダーを使用して を参照してください。

      ../../_images/asset-packages-fc-slider.png ../../_images/node-tree-fc-slider.png ../../_images/properties-slider-range1.png
    2. (オプション) Stack Layout 2D ノード内に、スライダーの値を表示する Text Block 2D ノードを作成します。

      ../../_images/node-tree-text-block-slider-value.png ../../_images/properties-slider-value-binding.png ../../_images/preview-adjust-slider-value.gif
  3. Toggle Button ノードを選択します。Properties で + Add Binding をクリックし、Binding Editor で設定します。

    • Binding Mode から To source へ

    • Push Target から . へ

    • Property から Toggle Button > Toggle State

    • Expression を、トグル状態に設定したい値を返す式にします。

      たとえば、データ型として四元数を使用する

      {@../Slider/RangeConcept.Value} == 0 ? 0 : 1
      

      このバインディングは、条件演算子を使用して Toggle Button を切り替えます。

      • Slider の値がゼロのときオフ。

      • Slider の値がゼロでない場合にオン。

      ?(条件付き) を参照してください。

    ヒント

    プロパティを右クリックして Create Binding を選択すると、そのプロパティのバインディングの作成を開始できます。

    この方法では、プロパティが自動的に Binding Editor に追加されます。

    ../../_images/properties-create-binding.png
    ../../_images/node-tree-fc-toggle-button-2.png ../../_images/binding-editor-to-source-toggle-state.png

Preview にいるとき、次のことを行います。

  • スライダーをゼロより大きい値に調整すると、Kanzi がトグルボタンで切り替わります。

  • スライダーをゼロに調整すると、Kanzi がトグルボタンをオフにします。

  • トグルボタンを切り替えても、スライダーはその値を保持します。

これにより、ユーザーは設定の値を調整し、設定を迅速に有効化および無効化することができます。例えば、音量コントロールを作成することができます。

../../_images/preview-toggle-state-slider-control.gif

Toggle Button ノードが使用中かどうかを制御する

Toggle Button ノードが使用中かどうかを制御するには、Input > Enabled プロパティを使用します。無効化された Toggle Button ノードは、ボタンの押下などのユーザーイベントを発生させません。Toggle Button ノードを無効にすると、Kanzi はその Toggle Button ノードのトグル状態を保持します。

ノードの Enabled プロパティを無効にすると、そのノードとその子孫ノードが同じオーバーレイフォーカススコープ内で実質的に無効になります。

ノードが効果的に有効になっているかどうかを確認するには、ステートマネージャーまたはバインディングで Input > Effectively Enabled プロパティを使用します。たとえば、ノードが使用中であるかどうかをユーザーに視覚的に示すために、ステートマネージャーを作成し、そのコントローラープロパティとして Effectively Enabled プロパティを使用します。

ノードが入力にどのように反応するかを制御する を参照してください。

Toggle Button ノードでダブルクリックジェスチャーを有効にする

Kanzi アプリケーションでユーザーがトグルボタンをダブルクリックまたはダブルタップできるようにするには、ダブルクリックジェスチャーを使用します。ダブルクリックジェスチャーに反応するには、Multi-Click トリガーを使用します。たとえば、ユーザーがそのノードをダブルクリックまたはダブルタップしたときに、Toggle Button ノードの外観を変更することができます。

Toggle Button ノードでダブルクリックジェスチャーを有効にするには、

  1. Node Tree または Prefabs で、ダブルクリックジェスチャーを有効にしたい Toggle Button ノードを選択し、Properties で Input > Double-Click Enabled プロパティを追加して有効にします。

    Double-Click Enabled プロパティを有効にすると、Kanzi は Toggle Button ノードにダブルクリックメッセージを生成するマルチクリックマニピュレータをインストールします。

    ../../_images/toggle-button-2d-in-prefabs.png ../../_images/toggle-button-double-click-enabled.png
  2. Node Components Alt を押しながら右クリック Triggers で、Message Trigger > Multi-Click > Multi-Click を選択します。

    ../../_images/add-multi-click-trigger.png
  3. Node Components > Triggers Alt を押しながら右クリック の Multi-Click トリガーで、アクションを選択し、アクションを構成します。トリガーの使用 と アクションとメッセージのリファレンス を参照してください。

Toggle Button 2D ノードの外観を設定する

2D ノードの外観を設定するには:

APIで Toggle Button 3D ノードを使用する

詳細については、ToggleButton3D クラスを参照してください。

APIで Toggle Button 2D ノードを使用する

詳細については、ToggleButton2D クラスを参照してください。

Toggle Button プロパティタイプとメッセージ

Toggle Button ノードの利用可能なプロパティタイプとメッセージのリストについては、Toggle Button 2D と Toggle Button 3D を参照してください。

関連項目

チュートリアル: トグルボタンの作成

Toggle Button Group ノードを使用する

Button ノードを使用する

ボタン

ステートマネージャー (State Manager)

トリガー (Triggers)

バインディング (Bindings)

ユーザー入力の処理