1. ホーム
  2. Web プログラミング
  3. 関連情報

UnityでVR Storm Magic Mirror Bluetoothジョイスティックを使用する方法

2022-01-17 21:52:53

I. Bluetoothジョイスティックボタンの反応

ストームマジックミラーの公式サイトから最新のSDKをダウンロードし、Unityプロジェクトにインポートしたところ、SDK内のDEMOは全てノンハンドル制御で、あとはSDK内のインターフェース説明ドキュメントを参考に自分で勉強するしかないことが判明~~~。 インターフェースドキュメントが通常のピットではないことがわかり、最初はMojingInputManagerに直接記入していました。 最終的には、シーン内のオリジナルのMojingInputManager.prefabを置き換えるIntegrateInputManager.prefabは、ハンドルへの入力としてUnity入力の検出と検出できることがわかったまで、以下はソースコードです(詳細は、インターフェースドキュメント3.9項を直接参照してください)。

 //Shift up the joystick
        if (CrossPlatformInputManager.GetButtonDown("UP"))          
	    {
	        Debug.LogWarning("Up_Get");
            up = 1;
	    }
        //Shift the joystick down
        if (CrossPlatformInputManager.GetButtonDown("DOWN"))
        {
            Debug.LogWarning("Down_Get");
            up = -1;
        }
        //Shift the rocker right
        if (CrossPlatformInputManager.GetButtonDown("RIGHT"))
        {
            Debug.LogWarning("Right_Get");
            right = 1;
        }
        //Shift the rocker left
        if (CrossPlatformInputManager.GetButtonDown("LEFT"))
        {
            Debug.LogWarning("Left_Get");
            right = -1;
        }
        // Rocker back to middle position
        if (CrossPlatformInputManager.GetButton("CENTER"))
        {
            Debug.LogWarning("CENTER_Get");
            up = 0;
            right = 0;
        }
        // Press the OK button
        if (CrossPlatformInputManager.GetButtonDown("OK"))
        {
            Debug.LogWarning("OK_Get");
        }
        // Press the cancel button
        if (CrossPlatformInputManager.GetButtonDown("C"))
        {
            Debug.LogWarning("Cancle_Get");
        }
        // Press the menu key
        if (CrossPlatformInputManager.GetButtonDown("MENU"))
        {
            Debug.LogWarning("MENU_Get");
        }

II. UGUIのためのイベント検出

VRプロジェクトの最も哀れな部分は、多くの公式SDKは、UIが世界座標に設定されている限り、しかし、元のUIは、そこにどのように奇妙に世界座標に変更した後、移動の視点に従うことであると言うが、もはや適応できないことであり、より調和するためには、VR用のUIのセットを設計する方が良いでしょう〜(上記のみ、あなたが好きではない場合スプレーしない個人的な意見です〜)。OK]を、今、UI材料の準備ができていると仮定すると、次に従事し始める〜他の特別な要件がないと仮定すると、次の2つのパラメータを変更するには、プロパティパネルでキャンバスを追加した後することができます。 

最初のRender Modeはレンダリングモード〜World Spaceに変更、2番目のEvent Cameraはイベント対応カメラで、手動でカメラを追加していない場合、シーンには以下のように3つのカメラがあるはずです。 

VRモードの効果は以下の通りです。 

左右のアイカメラを解除し、メインカメラのみをオンにすると、以下のような効果が得られます。
非VRモードではメインカメラがON、VRモードではデフォルトでOFFになり、Canvasで反応するカメラがメインカメラになるので(UIとの対話がなければここで設定する必要はない)、VRシーンではCanvasでUIを見ることができます。
UI とのインタラクション(ボタンのクリックなど)がある場合は、Canvas の Event Camera を設定し、以下のように SDK の GazeInputModule スクリプトを EventSystem の上にマウントする必要があります。 

カーソル内のオブジェクトは、ちょうど3つのレンズと混合コリメータであり、操作をトリガすることはすべてそれに依存する〜これだけではまだ不可能である場合〜コリメータでこの手順を行うには、上記のBUTTONに移動ホバー効果のみ(すなわち、。ハイライト)、リモートコントロールのOKボタンをクリックすると、任意の応答ではありません(私はそれに対処する方法を見つけるために公式のDEMOを参照したい---結果DEMOは、ハンドル制御されていないので、あなただけの独自のソリューションを見つけることができますo(╯□╰)o)、メソッドの様々を試みた後、最後に実行可能な方法を見つけた〜〜〜変更GazeInputModuleスクリプト、それは内部のクリック検出されますプラスCrossPlatformInputManager. GetButtonDown(& quot;OK")でOK~~~。

上記は、UnityでStorm Magic Mirror Bluetoothジョイスティックを使用する方法の詳細ですが、UnityでStorm Magic Mirror Bluetoothジョイスティックを使用する詳細な情報は、Script Houseの他の関連記事に注目してください