-
VIVE Wave
-
SDK
- VIVE Wave とは何ですか?
- Wave SDK はどこからダウンロードできますか?
- Wave デベロッパーコミュニティフォーラムにアクセスするにはどうすればいいですか?
- カスタムパッケージをインポートした後に、コンパイルエラーまたはビルドエラーを修正するにはどうすればよいですか?
- コントローラーをシーンに配置するにはどうすればよいですか?
- 同じシーンで追跡ポーズ設定が異なるヘッドを切り替えるにはどうすればよいですか?
- 同じシーンで 6DoF と 3DoF の間で切り替えるにはどうすればよいですか?
- イベントの受信やシステムオーバーレイへのクリックができないのはなぜですか?
- ランタイムにコントローラーオブジェクトを取得するにはどうすればいいですか?
- コントローラーポインターを表示または非表示にするにはどうすればよいですか?
- コントローラーモデルオブジェクトをルートからエミッターに変更するにはどうすればよいですか?
- コントローラーがイベントを送信したかどうかを確認するにはどうすればいいですか?
- 回転のみの環境でコントローラーの位置を設定するにはどうすればよいですか?
- シーンで1つのコントローラーのみを表示するにはどうすればよいですか?
- 床から頭部までの距離を知るにはどうすればいいですか?
-
-
VIVE SRWorks
-
VIVE アイ・フェイシャルトラッキング
- VIVE アイ・フェイシャルトラッキング SDK とランタイムはどこでダウンロードできますか?
- アイトラッキングを調整するにはどうすればよいですか?
- VIVE アイ・フェイシャルトラッキングにはどのドライバーが必要になりますか?
- VIVE アイ・フェイシャルトラッキングランタイムを更新するには?
- VIVE Pro Eye のファームウェアを更新するにはどうすればよいですか?
- アプリを起動した時に、Windows に変更を許可するメッセージが表示されるのはなぜですか?
- アイカメラバージョンに「N/A」と表示されます。問題ありますか?
- 他のアイトラッキング上の問題が発生した場合はどうすればいいですか?
- アイキャリブレーションの初期化と OpenCL でエラーが発生しました。どうすればいいですか?
- VIVEワイヤレスアダプターを使用している場合、アイトラッキングは動作しますか?
- 視覚障害がある場合、キャブリエーションデータはどうなりますか?
- トラッキング可能な FOV とはトラッキング精度は?
-
VIVE ハンドトラッキング
-
VIVE 3DSP Audio
-
VIVEPORT
-
VIVE Businessストリーミング
-
フェイストラッキング
-
ハンドトラッキング
-
シーンで1つのコントローラーのみを表示するにはどうすればよいですか?
2つのアクティブなコントローラーを維持しながら、シーンには1つのコントローラーのみが表示するように選択することができます。
次のコードを追加してください。
- WaveVR にある新スクリプト。
private GameObject ControllerLoader_DO = null; private GameObject loaderInstance_DO = null; private GameObject ControllerLoader_ND = null; private GameObject loaderInstance_ND = null; #region MonoBehaviour Overrides void OnEnable() { WaveVR_Utils.Event.Listen (WaveVR_Utils.Event.CONTROLLER_MODEL_UNLOADED, OnControllerUnloaded); } void Start () { this.ControllerLoader_DO = Instantiate(Resources.Load("ControllerLoader", typeof(GameObject))) as GameObject; this.ControllerLoader_DO.GetComponent<WaveVR_ControllerLoader>().WhichHand = WaveVR_ControllerLoader.ControllerHand.Dominant; this.ControllerLoader_DO.SetActive(false); this.ControllerLoader_ND = Instantiate(Resources.Load("ControllerLoader", typeof(GameObject))) as GameObject; this.ControllerLoader_ND.GetComponent<WaveVR_ControllerLoader>().WhichHand = WaveVR_ControllerLoader.ControllerHand.Non_Dominant; this.ControllerLoader_ND.SetActive(false); }
- Update () が現在のコントローラーの接続状態を監視し、1つのコントローラーのみを表示します。
void Update () { if (WaveVR.Instance == null|| this.ControllerLoader_DO == null || this.ControllerLoader_ND == null) return; if (this.loaderInstance_DO != null || this.loaderInstance_ND != null) return; WaveVR.Device _dev_do = WaveVR.Instance.getDeviceByType (WaveVR_Controller.EDeviceType.Dominant); if (_dev_do != null && _dev_do.connected && this.loaderInstance_ND == null) { this.loaderInstance_DO = Instantiate(ControllerLoader_DO); this.loaderInstance_DO.SetActive(true); } WaveVR.Device _dev_nd = WaveVR.Instance.getDeviceByType(WaveVR_Controller.EDeviceType.NonDominant); if (_dev_nd != null && _dev_nd.connected && this.loaderInstance_DO == null) { this.loaderInstance_ND = Instantiate(ControllerLoader_ND); this.loaderInstance_ND.SetActive(true); } }
- LoaderInstance will be destroyed and set to null when one of the controllers is disconnected.
void OnDisable() { WaveVR_Utils.Event.Remove (WaveVR_Utils.Event.CONTROLLER_MODEL_UNLOADED, OnControllerUnloaded); } #endregion void OnControllerUnloaded(params object[] args) { WaveVR_Controller.EDeviceType _type = (WaveVR_Controller.EDeviceType)args[0]; switch (_type) { case WaveVR_Controller.EDeviceType.Dominant:if (this.loaderInstance_DO != null) { PrintDebugLog("OnControllerUnloaded() remove DO" + this.loaderInstance_DO.name); this.loaderInstance_DO.SetActive(false); Destroy(this.loaderInstance_DO); this.loaderInstance_DO = null; } break; case WaveVR_Controller.EDeviceType.NonDominant:if (this.loaderInstance_ND != null) { PrintDebugLog("OnControllerUnloaded() remove ND" + this.loaderInstance_ND.name); this.loaderInstance_ND.SetActive(false); Destroy(this.loaderInstance_ND); this.loaderInstance_ND = null; } break; default:break; } }
参考になりましたか?
はい
いいえ
送信
ありがとうございました!フィードバックをいただければ、お役立ち情報の提供を改善してまいります。