For the final steps in production, I attempted to create a starting UI which could be accessed through user input. I was unsuccessful. I had an OVR Manager on my scene and called the appropriate things according to the documentation. However, OVRInput refused to output any information making it impossible to design a UI as originally planned. Instead I set up an animated camera in the scene and had it destroy after 25 seconds using Invoke(). This allowed me to create a pan down to an an in-world Raw Image which then transitions to the main scene by destroying the Canvas and camera objects causing the camera to reset to the OVR Player Controller. I also had to program the audio sources to switch places so that I could transition from one sound (birds chirping) to the other (music for the game portion).

Next and lastly before building, I had to solve an issue where sound effects kept playing every time the player or an object got near them, leading to multiple overlapping sound effects that didn’t respond as expected. To solve this problem I simply set up a boolean called hasPlayed to be triggered at the same time as the snapping mechanic and then set the sound to be destroyed one second after, allowing it to play once and then never be played again, which is an imperfect solution but well suited to the current gameplay.

Finally I built the game and tested it. It worked! I then pushed it to git and called the project complete.