Unity開発VRプロジェクト問題概要分析
I. StreamVRの問題点。
1. プロジェクト実行時にハンドルコントローラーが表示されない。
このとき、ヘッドセットで「ボタンプロファイルをロードできません」と表示されるので、このときはスチームを直接開いてください(steamVRではありませんよ)。
2. キーストロークの動きを重複して検出する問題。
この問題は、キーリフトやキー押下の検出がしばしば2回トリガーされるなど、プラグイン自体の問題であるべきで、現在の解決策は、押されたときに真、持ち上げられたときに偽となるBool値を設定することです
If (TrigerAction.GetStateDown(SteamVR_Input_Sources.RightHand))
{
if (!rightTriger)
{
rightTriger = true;
}
}
if (TrigerAction.GetStateUp(SteamVR_Input_Sources.RightHand))
{
if (rightTriger)
{
rightTriger = false;
}
}
3. OpenVR Init時のエラー。Init_InterfaceNotFound.
この問題はSteamVRとOpenCV(バージョン1.0.0)の互換性の問題のはずで、Steam経由で直接SteamVRをアップデートすれば(私のほうは1.15.19にアップデート)それ以降は問題ないです〜。
4.[SteamVR]インターフェイスが見つかりません(105)。
この問題はやはりSteamVRのバージョンの問題で、少なくともSteamVR 1.15.19では、この問題が発生するとジョイスティックが表示されなくなります
http://steamcommunity.com/app/250820/discussions/0/133259227526422836/
この問題は、以下のようにベータ版にアップデートすることで解決します。現在、この問題を修正したバージョン1.16.4にアップデートしています。
5. 以前にSteamVRのローカルファイルを誤って削除した場合、SteamVRをアップデートする
以下の手順で、SteamVRを再インストールすることができます。
II. ユニティの問題
1. レイがUIの上にあるかどうかを検出する(モデルとUIが干渉するのを避けるために使用する)
このメソッドはFixedUpdateで使用すると信頼性が高く、Updateで検出すると、webglプラットフォームがある時間には検出できないことに注意してください。
void FixedUpdate()
{
//The ray is on top of the UI
#if ! (UNITY_EDITOR||UNITY_STANDALONE )
if (Input.touchCount <= 0)
return;
#endif
#endif ! (UNITY_EDITOR||UNITY_STANDALONE )
if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))
#else
if (EventSystem.current.IsPointerOverGameObject())
#endif
return;
// Trigger the following function when the ray is not on the UI
---
}
2. VS2019 デバッグunityプロジェクト。
上部メニューバーの "Debug" -> "Attach to Unity Debugger" を選択します。
3. Unity がプロジェクトを読み込むと、"package manager error" が表示されます。
- 1ファイアウォールをオフにして(ホワイトリストの設定は無意味です)パソコンを再起動すれば解決し、unityプロジェクトを開いた後に再度ファイアウォールをオンにすればよいでしょう。
- ネットワークから切断し、コンピュータを再起動してオフラインモードでunityを開き、再度ネットワークに接続することができます。
4. ライトベーキングの問題
①指向性直射光も焼成に使用できますが、グローバルな光であり、屋内の焼成に使用すると、部屋の壁に遮られ、焼成した部屋はある程度明るくなりますが、ライブライトを消すと部屋の中の可動物は全て黒(無光)になってしまいます。
ポイントライトやスポットライトで部屋をできるだけ明るく焼き、マッピングの明るさで光の明るさを調整します。
5. オブジェクトの回転の問題。
eulerAnglesによるオブジェクトの回転はジンバルロックになりますが、Quaternionで直接座標を計算するのは面倒なので、QuaternionでeulerAnglesをQuaternionに変換すれば解決します。
Quaternion _angle = Quaternion.Euler(new Vector3(0,45,0));
transform.rotation = _angle;
6. UGUI でイベント(例:ボタンクリック)をトリガーできない。
UIコントロールが配置されているCanvasのEventCameraが空であるかどうかに注意してください。なぜなら、イベントはカメラからの光線に基づいてトリガーされ、それが空でない場合、このCanvas下のすべてのUIコントロールはこのカメラに基づいてイベントをトリガーするからです。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
CookieのSameSiteプロパティの概要
-
コンピュータネットワークの毎日の練習問題、毎日少しずつ進歩する
-
Scratch 3.0の初期化でSeven Cows Cloudにsbsファイルを読み込む方法
-
Scratch3.0 Windows環境パッケージのexeプロセスへの二次開発
-
gitツール共通コマンドとssh操作方法
-
GitコンフィギュレーションへのConfig Server接続のコツ
-
vscodeの左エクステンションのアクティビティバーが消える問題とその解決方法
-
シェア ソフトウェアテストに必須のテストツール一覧のまとめ
-
Rustによるファイル操作の例を解説
-
IntelliJ IDEA/Android Studioベースプラグイン開発ガイド(推奨)