2016-06-21 86 views
0

我想在Unity上更改Google纸板实施中的角度偏移速度。这意味着,如果我旋转40度,渲染视图最终转向45度(或35度,取决于我可以分配的因素)。如何更改纸板上的角度偏移速度VR

我相信我必须在这里玩var rot这里。任何人都可以帮助我弄清楚如何在这里操纵四元数读数 - 比如每欧拉1度的头部旋转,渲染结束旋转1.25度?

// Compute new head pose. 
private void UpdateHead() { 
    if (updated) { // Only one update per frame, please. 
     return; 
    } 
    updated = true; 
    GvrViewer.Instance.UpdateState(); 

    if (trackRotation) { 
     var rot = GvrViewer.Instance.HeadPose.Orientation ; 
     if (target == null) { 
     transform.localRotation = rot; 
     } else { 
     transform.rotation = target.rotation * rot; 
     } 
    } 

    if (trackPosition) { 
     Vector3 pos = GvrViewer.Instance.HeadPose.Position; 
     if (target == null) { 
     transform.localPosition = pos; 
     } else { 
     transform.position = target.position + target.rotation * pos; 
     } 
    } 

    if (OnHeadUpdated != null) { 
     OnHeadUpdated(gameObject); 
    } 
    } 
} 

回答

0

我想7个月后你可能不再需要这个了。 我会说这应该工作。

private void UpdateHead() { 
    if (updated) { // Only one update per frame, please. 
     return; 
    } 
    updated = true; 
    GvrViewer.Instance.UpdateState(); 

    if (trackRotation) { 
     var rot = GvrViewer.Instance.HeadPose.Orientation ; 


     var rotx = rot.x; 
     var roty = rot.y; 
     var rotz = rot.z; 
     var rotFinal = Quaternion.Euler(rotx*1.15f, roty*1.15f, rotz*1.15f); 


     if (target == null) { 
     transform.localRotation = rotFinal; 
     } else { 
     transform.rotation = target.rotation * rotFinal; 
     } 
    } 

    if (trackPosition) { 
     Vector3 pos = GvrViewer.Instance.HeadPose.Position; 
     if (target == null) { 
     transform.localPosition = pos; 
     } else { 
     transform.position = target.position + target.rotation * pos; 
     } 
    } 

    if (OnHeadUpdated != null) { 
     OnHeadUpdated(gameObject); 
    }