本文将继续介绍SvrPluginAndroid脚本中的其他代码:
public override int GetPredictedPose(ref Quaternion orientation, ref Vector3 position, int frameIndex)
{
orientation.z = -orientation.z;
position.x = -position.x;
position.y = -position.y;
int rv = SvrGetPredictedPose(ref orientation.x, ref orientation.y, ref orientation.z, ref orientation.w,
ref position.x, ref position.y, ref position.z, frameIndex);
orientation.z = -orientation.z;
position.x = -position.x;
position.y = -position.y;
return rv;
}
public override DeviceInfo GetDeviceInfo()
{
DeviceInfo info = new DeviceInfo();
SvrGetDeviceInfo (ref info.displayWidthPixels,
ref info.displayHeightPixels,
ref info.displayRefreshRateHz,
ref info.targetEyeWidthPixels,
ref info.targetEyeHeightPixels,
ref info.targetFovXRad,
ref info.targetFovYRad,
ref info.targetFrustumLeft.left, ref info.targetFrustumLeft.right, ref info.targetFrustumLeft.bottom, ref info.targetFrustumLeft.top, ref info.targetFrustumLeft.near, ref info.targetFrustumLeft.far,
ref info.targetFrustumRight.left, ref info.targetFrustumRight.right, ref info.targetFrustumRight.bottom, ref info.targetFrustumRight.top, ref info.targetFrustumRight.near, ref info.targetFrustumRight.far);
return info;
}GetPredictedPose方法的作用是获取当前帧的位置已经朝向的四元数数据。
传入的参数包括orientation position 以及frameIndex。
其中orentation被设置成ref类型的变量,调用该方法后会返回orentation的值。
orentation的值表示当前VR设备的头部朝向四元数数据。
position同样被设置成ref类型,表示当前头部的6Dof数据。
frameIndex表示的是当前运行的帧数。
根据这三个参数,GetPredictedPose方法会调用底层的SvrGetPredictedPose方法,并返回当前frameIndex帧数的头部朝向以及位置数据。
GetDeviceInfo方法是获取当前的设备信息,具体详细的代码逻辑在后续章节中介绍。
|