void UpdatePose() { var pose = NoloVR_Controller.GetDevice(deviceType).GetPose(); if (deviceType == NoloDeviceType.Hmd) { if (vrCamera == null) { Debug.LogError("Not find your vr camera"); transform.localPosition = pose.pos; return; } //Correct the camera yaw noloyaw = pose.rot.eulerAngles.y; resetyaw = noloyaw - camerayaw > 0 ? noloyaw - camerayaw : noloyaw - camerayaw + 360; presetyaw = transform.localRotation.eulerAngles.y; resultyaw = resetyaw - presetyaw; transform.localRotation = NoloVR_Utils.GetRecenterRot(pose.rot, presetyaw, resultyaw); //Correct the camera position camerayaw = vrCamera.transform.localRotation.eulerAngles.y; var cameraLoaclPosition = transform.localRotation * vrCamera.transform.localPosition; transform.localPosition = pose.pos - cameraLoaclPosition; } else { transform.localPosition = pose.pos; transform.localRotation = pose.rot; } }
void Awake() { instance = this; objects = GameObject.FindObjectsOfType <NoloVR_TrackedDevice>(); GameObject androidCallBack = new GameObject("USB Host Peripherals"); androidCallBack.AddComponent <NoloVR_AndroidCallBack>(); NoloVR_Playform.InitPlayform().SetHmdTrackingCenter(NoloVR_Utils.GetHmdTrackingCenter(vrPlayform)); NoloVR_Controller.Listen(); }