Hello! I'm glad you liked it. Regarding your questions (the „Moving Sphere” is actually the player) :
1) How does the player move?
I used CharacterController component to move the player. It provides a function called Move(). It takes a Vector3 as an argument that represents the move direction.
2) How does the player navigate the level?
CharacterController also provides a function called OnControllerColliderHit(). It is an equivalent of the OnCollisionEnter() function. I placed invisible cubes around the level that block the player’s path. Once the player collides with them, the OnControllerColliderHit() function is triggered. Each invisible cube has a tag that specifies what action to perform (as shown in the image below)