Assets/Monobit Unity Networking/Plugins/MonobitNetwork/MonobitTransformView.cs のソースを見れば一目瞭然ですが、ここで位置同期をとる際に、オブジェクトの transform.localPosition, transform.localRotation, transform.localScale の値を送受信しあっています。
ですが、現在 Oculus で頒布している Oculus Integration(OVRPlugin)では、この位置同期情報をとるべき値について Assets/Oculus/VR/Scripts/OVRCameraRig.cs 、厳密には OVRCameraRig.UpdateAnchors() メソッドにて、たとえMonobitTransformView で同期される処理を施したとしても、値が上書きされてしまいます。
よって、この上書きしている箇所について、例えば以下のようなコードの追加により、無効にしなければなりません。
// MonobitEngine.MonoBehaviour を継承するように変更 [ExecuteInEditMode] public class OVRCameraRig : MonobitEngine.MonoBehaviour { // 省略
protected virtual void UpdateAnchors(bool updateEyeAnchors, bool updateHandAnchors) {
// 省略
if (!Application.isPlaying) return;
// monobitView.isMine でなければ処理を無効にする if(!monobitView.isMine) return;
if (_skipUpdate) {
// 以下省略 |