Oculus Rift(のUSBケーブル)が抜かれたというのを知る方法

gtk2kgtk2k 投稿:3
NerveGear
2月 2015 編集されました カテゴリ: 日本語(一般)
デバイスの検出はDetect()で行うようですが、接続されているかどうかを知るためには、これをポーリングするしか方法がないのでしょうか?

コメント

  • needleneedle 投稿:49
    Brain Burst
    2月 2015 編集されました
    ご質問ありがとうございます。お返事遅れまして申し訳ありません。
    さてご質問ですが、これはC APIにおける場合と解釈して問題ありませんでしょうか?
    その場合、 ovrHmd_GetTrackingState() にてovrTrackingStateを取得し、その中に含まれているStatusFlagsのovrStatus_HmdConnectedフラグをポーリングする事でHMDの接続状態の確認が可能です。

    https://developer.oculus.com/doc/0.4.4-libovr/_o_v_r___c_a_p_i_8h.html#af7f9a08f4a0da07932277065cfe467a6
    https://developer.oculus.com/doc/0.4.4-libovr/_o_v_r___c_a_p_i_8h.html#a8b44d89e34e7a77270947b55221c6bd0
    if (ovrHmd_GetTrackingState(HMD, 0.0f).StatusFlags & ovrStatus_HmdConnected)
    {
        // HMD is connected
    }
    
    また、Unityの場合はこれらをラップしたHMDLost()とHMDAcquired()というイベントがOVRManagerから発火されますので、これにコールバックをフックする事も可能です。(内部的には上記と同じことをしています)
    viewtopic.php?f=37&t=1648

    ご参考になれば幸いです。
  • gtk2kgtk2k 投稿:3
    NerveGear
    返事が遅れてしまい申し訳ございません。
    C#で組んでいますが、libOVRをそのままC#(.NET)でラップしたものを使用しています。
    教えてくださった、ovrTrackingStateのステータスの値で判定することでUSBが抜かれたことを知ることができました。
    ありがとうございました!
コメントするにはサインインまたは登録して下さい。