Week – 05/05/25

2–3 minutes

This week, I focused on catching up with unfinished tasks and refining previous work. I revisited the Unity “Create with VR” project, aiming to improve the functionality of my virtual record player. My goal was to get the record player to both play audio and visually rotate when a vinyl was placed on it, something I had struggled with in earlier attempts.

To approach the problem with a fresh perspective, I decided to start from scratch. I set up a new scene, re-imported the record player model with its appropriate socket, and added all six vinyls, assigning each one its own audio source and track. I managed to recreate everything up to the point where I had previously encountered issues with the rotation animation. This time, I made sure to save backup copies so I could revert if needed.

Initially, I added rotation to the turntable child object within the record player, and this part worked perfectly. When a vinyl was placed onto the player, the turntable would rotate as expected, providing the visual feedback I was aiming for. I almost left it at that, but I really wanted the vinyl itself to rotate rather than just the surface beneath it.

After some research using Phind, I found a suggestion to make the vinyl become a child of the turntable once placed. This worked to an extent, the vinyl now moved with the turntable, but it orbited rather than spinning in place, which wasn’t the effect I wanted. I then adjusted the code to have the vinyl inherit the turntable’s rotation and position. This fixed the orbiting issue but caused a new problem, the vinyl clipped through the turntable and visually didn’t look right. I resolved this by adjusting the vinyl’s placement slightly above the surface and finally achieved the rotation effect I wanted.

However, a final issue arose once the vinyl was placed on the turntable and started rotating, I could no longer pick it up again. At that point, I decided to leave the vinyl as a static object and have only the turntable rotated below it, while still playing the assigned audio track.

Although I didn’t achieve exactly what I envisioned, I’m still proud of how far I pushed this feature. It was a frustrating but enjoyable learning experience that deepened my understanding of Unity object hierarchies, parenting, and how transform inheritance works in interactive VR environments. The process reminded me of the importance of iteration, persistence, and knowing when to compromise for the sake of functionality.