http://blog.csdn.net/liulong1567/article/details/51164593
SDK代码剖析
#if
private
#else
private
#endif
{
EnsureGameObjectIntegrity();
if
return
;
UpdateCameras();
UpdateAnchors();
}
|
private
{
if
{
leftEyeCamera
rightEyeCamera
#if
needsCameraConfigure
false
;
#endif
}
}
|
private
{
Transform
Camera
OVRDisplay.EyeRenderDesc
cam.fieldOfView
cam.aspect
cam.rect
new
OVRManager.instance.virtualTextureScale);
cam.targetTexture
cam.hdr
...
return
}
|
private
void
UpdateAnchors()
{
bool
monoscopic = OVRManager.instance.monoscopic;
OVRPose
tracker = OVRManager.tracker.GetPose();
OVRPose
hmdLeftEye = OVRManager.display.GetEyePose(OVREye.Left);
OVRPose
hmdRightEye = OVRManager.display.GetEyePose(OVREye.Right);
trackerAnchor.localRotation
= tracker.orientation;
centerEyeAnchor.localRotation
= hmdLeftEye.orientation;
//
using left eye for now
leftEyeAnchor.localRotation
= monoscopic ? centerEyeAnchor.localRotation
:
hmdLeftEye.orientation;
rightEyeAnchor.localRotation = monoscopic ? centerEyeAnchor.localRotation
:
hmdRightEye.orientation;
trackerAnchor.localPosition
= tracker.position;
centerEyeAnchor.localPosition
= 0.5f * (hmdLeftEye.position + hmdRightEye.position);
leftEyeAnchor.localPosition
= monoscopic ? centerEyeAnchor.localPosition
:
hmdLeftEye.position;
rightEyeAnchor.localPosition
= monoscopic ? centerEyeAnchor.localPosition
:
hmdRightEye.position;
if
(UpdatedAnchors !=
null
)
{
UpdatedAnchors(
this
);
}
}