私はUnity3DのVRプロジェクトの注視アルゴリズムを実装しています。ここまで私がここで見つけたことは、Physics.Raycast
を使用し、すべてのボタンオブジェクトにBoxCollider2Dコンポーネントを追加して、ユーザーがそれを見ているかどうかを検出することです。 Raycastの使用は避けたいのですが、これは高価で、処理するUI構造が非常に複雑なため、パフォーマンスの問題が発生する可能性があるためです。Unity3DのUIアイテムのRaycastの代替
カーソルロックを使用しようとしましたが、残念ながらモバイルプラットフォームではありません。
は、私はまた、ボタンオブジェクトのrect
が
Camera.main.ViewportToWorldPoint(new Vector3(0.5f,0.5f,Camera.main.nearClipPlane));
ボタンオブジェクトの矩形変換は、中間の中心として固定されているとき、それは正常に動作によって作成された世界のポイントが含まれているかどうかを確認するためにカメラビューポートの中心を使用してみました。しかし、それはいくつかの他の設定をしている場合、またはボタンが(世界のスペースキャンバスで)少し傾いている場合は動作しません。そして私はrect変換の仕組みと世界空間での正確な位置を見つける方法にあまり慣れていません。
誰もが解決策を知っていますか?あるいはこれを行うための他の方法がありますか?
すべての種類のヘルプは高く評価されています。
私はあなたがオクルスをやっているかどうかわからないが、これは、とにかく読んで良いですhttps://developer.oculus.com/blog/unitys-ui-system -in-vr/ –
Unityからのサンプルプロジェクトを確認しました。これはイベントシステムのBaseRaycasterクラスで実装されています。 –