How to make the controller 3DoF with oculus quest

Hello
I am replacing from oculus go to oculus quest.
I want to make the controller compatible with 3DoF, but I don’t know.
Is there a script that switches the controller of oculus quest to 3DoF?
thank you

environment:
・ Oculus integration v29
・ Unity 2020.3.16

No. But your code could ignore its position and only look at its rotation if you want. (It’ll make a lousy Quest game, but you could do it.)

1 Like

@JoeStrout

But your code could ignore its position and only look at if you want.

I want to ignore the position of the controller and fix it, what should I do?
(I tried commenting OVRCamerarig.cs, but there is no change.)

Sounds like you’re starting with some plug-in or asset. In that case, I don’t know — I always just track the position and rotation of the hardware directly, without using any drop-in asset for it.

Please don’t make 3DOF even for a port. And I am not sure oculus would accept it as last I checked that wouldn’t pass it’s guidelines. You could sidequest store, but I really do think you’re best off going with 6DOF.

2 Likes

After that, I checked the source and found that it was controlled by the GetLocalControllerPosition function of OVRInput.cs. When the source is modified as follows, the z-axis movement of the controller is fixed and it is converted to 3DoF, so I would like to implement it with this.

if(!OVRManager.instance.usePositionTracking)
{
    Vector3 Vec = OVRPlugin.GetNodePose(OVRPlugin.Node.HandLeft, stepType).ToOVRPose().position;
    Vec.z = OVRPlugin.GetNodePose(OVRPlugin.Node.HandLeft, stepType).ToOVRPose().position.z - Vec.z + 0.25f;
    //Debug.Log("OVRInput.cs" + Vec);
    return Vec;
}
else
    return OVRPlugin.GetNodePose(OVRPlugin.Node.HandLeft, stepType).ToOVRPose().position;
1 Like