4 Key Concepts to Build a Unity Bounded Game for the Apple Vision Pro
Bounded is from Unity’s own terminology meaning that the game is a Volume in Passthrough for the Apple Vision Pro (AVP). The volume is in Shared Space, meaning that other volumes and windows can be used at the same time.
In making Capsule Critters for AVP these key concepts were a focus while exploring the new platform.
1) Keep input as natural as possible
The AVP’s main interaction is using eye gaze and pinch. Eye gaze is treated similar to a mouse cursor with the pinch being a left click of a mouse. AVP also supports directly interacting with objects by pinching. Swapping between both methods is easy for the user and allows them to play the way that is most comfortable for them, planning for both is paramount.
2) Match physical size to the real world
Have objects sized appropriately for fitting within a user’s environment, matching the physical size of real world objects. Unity and AVP’s volumes make this easy by using meters as units. For interactable objects ensure that their sizes are large enough to reliably select with eye gaze, but also a size that makes sense to grab.
3) Ensure an interaction space
Ample space for user’s to manipulate objects is a must have. The volume’s bounds is where rendering stops. Give room so the user can pick up, inspect, and move around the object naturally without objects disappearing
4) Leverage Unity’s components
Make sure to use the components that Unity has given us to hook into native visionOS functionality. The VisionOSHoverEffect is essential as the gaze data is not available for Shared Volumes. This gives very necessary feedback to the user when their gaze falls on an interactable object. The VisionOSGroundShadow is subtle, but helps cement the physicality of the objects being in your room.
Article by James Spavold CTO