夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

InteractablesExamples/CheckBox ~MixedRealityToolkit v2 Examplesを触ってみる。 その⑥~

 MixedRealityToolKit(以下MRTK)にはExamplesというデモサンプル集が含まれています。

 Examplesを理解すればMRTKの機能の使い方を学習することやノンコーディングでのアプリ開発が可能になります。  

 前回からUX/Interactables/InteractablesExamplesを見ています。

 前回はTraditional Styleを見ていました。

 今回はSceneDescriptionPanelのCheckBoxを見ていきます。

f:id:Holomoto-Sumire:20200215092429j:plain

 SceneDescriptionPanelにはチェックボックスラジオボタンのUIサンプルがあります。

〇CheckboxCollection

f:id:Holomoto-Sumire:20200215094613g:plain

 チェックボックスのサンプルです。

 3種類のボックスが用意されており、すべてに[Interactable.cs]がアタッチされています。

 [Profile]の[Target]で[Background][Button][Label][CheckBoxCheck]が設定されています。

 f:id:Holomoto-Sumire:20200215092822j:plain

これによって選択された状態と非選択の状態で見た目を変化させているようです。

f:id:Holomoto-Sumire:20200215093946j:plain
selectされていない場合の状態

f:id:Holomoto-Sumire:20200215094101j:plain
selectされた状態

 [CheckBox]はプレファブとして用意されいます。

 f:id:Holomoto-Sumire:20200215094923j:plain

[CheckBox]には[Touch Handler.cs]がアタッチされており、[OnTouchStarted]として[Interactable.SetInputDown]が指定されています。

  f:id:Holomoto-Sumire:20200215100121j:plain

[OnTouchConpleted]として[Interactable.SetInputUp]が指定されています。

 これがチェックボックスの状態の変化を担っています。

〇Interactable.cs

   public void SetInputDown()
        {
            if (!CanInteract())
            {
                return;
            }

            dragStartPosition = null;

            HasPress = true;

            StartClickTimer(true);
       }
        public void SetInputUp()
        {
            if (!CanInteract())
            {
                return;
            }

            HasPress = false;
            HasGesture = false;

            if (CanFireClick())
            {
                StopClickTimer();

                TriggerOnClick();
                IsVisited = true;
            }
        }

[CheckBox]を実際にアプリ内で使用する際は[Interactable.cs]のEventの[OnClick()]にイベントを指定します。

f:id:Holomoto-Sumire:20200215101239j:plain

次回は[ToggleCollection]を見ていきます。