Oculus Rift DK2 OSX + Unity3D Setup


(Edited 10/28/14 after Oculus 0.4.3 update)

Here’s my setup that works on OSX in Unity editor. The big caveat is that it will only do 60hz when mirrored, so there will be judder on the Rift. I have only been able to get 75hz in a standalone build on the Mac, and it’s been sporadic at that.


  • DK2 running the 0.4.2 (or 0.4.3) runtime on
  • Macbook Pro 2013 Retina with OSX Mavericks.
  • Unity 4.5.5
  • External Thunderbolt display


  1. Make all 3 screens active. Don’t close the lid on the Macbook.
  2. Open the Displays preferences
  3. Go to Arrangement
  4. Set the DK2 to 90deg rotation so that it actually is right side up and in landscape mode 1080p.
  5. OPTION DRAG the Macbook display to the DK2 display. This will selectively mirror those two displays while leaving the other display alone. Set the displays to optimize for Rift DK2. After this the Macbook and DK2 should be rendering at 1080p landscape.
  6. Move the Mirrored DK2/Macbook display stack to the LEFT of the external monitor. It appears that the DK2 only likes to render if it is the left-most display.
  7. Make the DK2/Macbook display stack the primary monitor in the Displays/Arrangement panel by dragging the white bar from the external display to the mirrored ones. This may unmirror the displays. If it does, just remirror them with OPTION DRAG.
  8. Open the Unity editor and place the game window on the mirrored displays. Make it fill the screen.
  9. Set the game window to FREE ASPECT. For some reason 16:9 caused it to go black for me.
  10. Hit play

Now under 0.4.3, the Rift render in the Unity game view always shows up. This makes iterating on my game MUCH more efficient than before, where the view would go completely black at random times. However there are lots of other issues with 0.4.3, so your mileage may vary.

8 thoughts on “Oculus Rift DK2 OSX + Unity3D Setup

  1. Turned off mirroring. Changed the RIFT to the primary monitor. That seems to have made a big difference in my judder. Frame rate went from 60fps with mirroring to 75fps with Oculus as the primary. Hope that helps.

  2. Hi Ben,

    I didn’t know you could just mirror some of the connected screens, that’s awesome, thanks!!

    Yes mirroring seems to cause judder, as it seems to set the refresh rate to 60Hz, which causes the judder in the DK2.

    But for development your solution is still the best for me, as I don’t always want to actually put on the HMD.

    In my case I also don’t set the screen/HMD stack to primary (out of convenience). This often causes the Game view to stay black when in playmode, but I noticed opening up several (mostely just a second one) Game views helps, as at least one of them should show something. I think the game view need to be in separate windows though and not in tabs in the same window. And on first start you might need to close the other “not-working” ones and then restart play mode, so the working Game view will have your inputs attached.


  3. trying to rotate the rift dk2 in yosemite. Any idea how to do this? I don’t see any rotate option in display preferences…

  4. Hi Ben

    We use your Unity detonator (old version) in a game called Motorbike.

    Now we have ported it to work for the Rift, but the detonator is not working.

    Have you tried your detonator with the Rift?


  5. polytekton: Goto your system settings, displays and find the rift display (you may have to “Gather” them to see the Rift DK2 display. Once you see it select the Resolution: “Scaled” option. It will expose moe options, including rotation.

  6. Most helpful thanks! I’m running Unity 4.6 and have had some issues with Unity crashing when I try to undock the Game window to place on my correct monitor. This happens when my DK2 is already attached. Not sure if others are experiencing this. I had to set up my Unity layout first before mirroring Rift to Macbook display.

Leave a Reply to Ben Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>