++資料
Oculus Avatar SDK を使って自分のアバターを Unity で利用する方法を調べてみた - 凹みTips
++注意点
*メソッド名はUnityとNativeで違う
*サンプルアプリがhttps://assetstore.unity.com/packages/tools/integration/oculus-integration-82022
のplatform/Samplesに入ってるのでこれを参考にする
++P2P接続の流れ
A=>Bに接続する場合
ovr_Net_Connect()でBのUserIDを付加してBに接続要求
ovr_Net_Accept()でBは接続要求を認証
これで、A、BはovrMessage_NetworkingPeerConnectionStateChange notificationを受け取る。
これでAはovr_Net_SendPacket()でデータを送ることが出来るようになる(サンプルの説明には書いてないが多分、相互に使えるはず)
データを送信された側は
ovr_Net_ReadPacket()
ovr_Packet_GetBytes()
でデータを取得でき、ovr_Packet_Free()でメモリを解放出来る
ovr_Net_Close()で接続を遮断できる
終わり。
++UserIDを取得する
上記ブログだと以下のように取得している
Core.Initialize(); Users.GetLoggedInUser().OnComplete(msg => { Debug.Log(msg.GetUser().ID); // 自身の ID(16 桁の数字)を表示 Debug.Log(msg.GetUser().OculusID); // 自身の ID(文字列)を表示 });
サンプルでも追加で色々書かれてるが基本は同じ
++++その他
++Unityだけの機能を使っても実装できる
Unityでのマイク録音3種盛り:レイテンシ比較 - Qiita
これボイスチャットの場合は、小刻みにデータを送って相手側でPlay()するのだろうか?SyncVarとコールバックを使えば実装しやすい気もするがラグがひどい気がする
++Oculusのサンプルアプリ
PlatformManager: 接続のための基本的な処理を行うクラス
P2PManager:transform,アバターの同期
VoIPManager:ボイスチャット