Windows Mixed Reality ヘッドセット (Lenovo Explorer) と Unity を使用して小さなゲーム プロジェクトに取り組んでいます。現在、最新の MRTK v2.1 リリースを実行しています。
カスタムの右手コントローラーを使用しています。これは、メイン オブジェクトに次のコンポーネントがあるプレハブです。
- mrtk の
WindowsMixedRealityControllerVisualizer
スクリプト - アクション (シュート、ジャンプなど) への入力を管理するための入力コントローラー スクリプト ( を使用
IMixedRealityInputHandler
) - VR ワールドでの実際のアクションを扱うカスタム スクリプト。
コンポーネントの他に、レンダリングしたいオブジェクトの 3D モデル プレハブである子オブジェクトがあります。それは子供の中にあるので、オフセットで正しく配置できました。私の知る限り、これは問題ではありません。この全体が独自のプレハブであり、それをGlobal Right Hand Controller ModelMixedRealityControllerVisualizationProfile
の下のカスタムに追加します。一般的に、これは私が望むように機能します。コントローラーは右手で正しくレンダリングされ、入力も希望どおりに動作します。
私の問題は、ゲーム中にホームボタン (Windows ロゴ) をクリックしてフローティング メニューを表示すると、もう一度クリックしてゲームに戻ると、新しいコントローラーが 0,0,0 (またはゲームに戻るときに私の手がある場所); 私はまだ手に持っていますが、この新しいものも私の手にあるものと同じように入力に反応します。ホームボタンをもう一度開いたり閉じたりすると、これが繰り返され、複数のコントローラーが生成されます。そのため、 を撃つと、手と 0,0,0 の新しいコントローラー (または、それまでにシーンに配置されていたすべてのコントローラー) の両方からショットが発射されます。
私のコントローラーが追跡を失うことはないと思うので、mrtk が新しいコントローラーを生成する理由を IDK で説明します。シーン内の余分なコントローラー オブジェクトをチェックし、更新ごとに手動で削除することを検討しましたが、それはばかげているように聞こえます。これを確実に処理できる構成がどこかにあるはずです。ビジュアライザー スクリプトはこれを処理しませんか?
私はオンラインで見回しましたが、これについて具体的なものは見つかりませんでした。手がかりは大歓迎です。