Background and Description:
Virtual Reality is an up-and-coming cutting-edge technology, and as such, is proportionately expensive. However, Google Cardboard is a low-cost alternative to the high-cost, high-end systems such as Oculus Rift, since Google Cardboard uses a phone that most people already have. The primary issue with this, however, is that the controls are very limited, since you don’t have access to the touchscreen, and the accelerometers are used for controlling the view.
Since phones that support Google Cardboard have Bluetooth, it is only logical that I build on this to connect a Wii controller (or wiimote) to the phone. This will allow for additional control schemes, such as button inputs and motion controls. Google Cardboard supports both iPhone and Android, and both have Bluetooth, but I will focus only on Android for the purposes of this project.
What I have accomplished so far:
I have succeeded in building a Google Cardboard application and deploying it to my Android phone through Unity 3D. I have also done the research to determine that there are no recent apps or tutorials that will allow a wiimote to be successfully connected to an Android. This is because in version 4.2 of Android (Jelly Bean) Google completely reworked the Bluetooth stack, causing all pre-existing Bluetooth applications to stop working. This means that I will have to write my own interface to the wiimote. I have done enough research to determine that Google provides an API for Bluetooth communication, and I can write an Android plugin for Unity 3D. I have also found a specification for wiimote communications.
Minimum: Write a Unity plugin for Android that can communicate with a wiimote, and pass button input to Unity.
Target: Use the wiimote to navigate a 3D world using Google Cardboard and Unity.
Stretch Goal: The navigable 3D world will be procedurally generated.