Starting at present, some builders can use the favored software program Unity to make apps and video games for Apple’s upcoming Vision Pro headset.
A partnership between Unity and Apple was first introduced throughout Apple’s WWDC 2023 keynote final month, in the identical phase the Vision Pro and visionOS had been launched. At that point, Apple famous that builders might begin making visionOS apps instantly utilizing SwiftUI in a brand new beta model of the corporate’s Xcode IDE for Macs, however it additionally promised that Unity would start supporting Vision Pro this month.
Now it’s right here—albeit in a sluggish, restricted rollout to builders that join a beta. Unity says it is admitting a variety of builders into this system progressively over the approaching weeks or months however hasn’t gone into a lot element concerning the standards it’s utilizing to choose folks aside from not solely specializing in makers of AAA video games.
Once builders begin working with it, the workflow will probably be acquainted. It intently mirrors how they’ve already labored on iOS. They can create a mission focusing on the platform, generate an Xcode mission from there, and shortly preview or play their work from the Unity editor by way of both an hooked up Vision Pro devkit or Xcode’s Simulator for visionOS apps.
Shared areas, RealityKit, and PolySpatial
Unity is greatest often called an engine for making 2D and 3D video video games, however the firm affords a collection of instruments that goal to make it a type of one-stop store for interactive content material growth—gaming or in any other case. The firm has an extended historical past on Apple’s platforms; lots of the early 2D and 3D video games on the iPhone had been constructed with Unity, contributing to the corporate’s rise to fame.
Unity has since additionally been used to make some standard VR video games and apps for PC VR, PlayStation VR and VR2, and Meta Quest platforms.
There are a handful of particular contexts during which a Unity-made app would possibly seem on visionOS. 2D apps operating in a flat window inside the person’s house would be the best to implement. It also needs to be comparatively easy (although not essentially trivial) to port absolutely immersive VR apps to the platform—assuming the mission in query makes use of Unity’s Universal Render Pipeline (URP). If it would not, then the app will not get entry to issues like foveated rendering, a key characteristic for each efficiency and constancy.
Still, that is a stroll within the park in contrast to the 2 different contexts. AR apps which are positioned within the person’s seen bodily environment will probably be extra sophisticated, and a few apps might need to current interactive 3D objects and areas alongside different visionOS apps—that’s, they need to support multitasking.
To make that doable, Unity is launching “PolySpatial,” a characteristic that enables apps to run in visionOS’s Shared Space. Everything within the Shared Space leans on RealityKit, so PolySpatial interprets Unity supplies, meshes, shaders, and so forth to RealityKit. There are some limitations even inside that context, so builders will typically have to make tweaks, construct new shaders, and so forth so as to get their apps operating on Vision Pro.
It’s value noting right here that purportedly within the identify of privateness, visionOS doesn’t give apps direct entry to the cameras, and there is no means to circumvent the necessity to work with RealityKit.
Numerous the dialogue up to now has been about adapting present apps to get their software program on Vision Pro in time for the product’s launch subsequent yr, however that is additionally a possibility for builders to begin engaged on utterly new apps for visionOS. Using SwiftUI and different Apple toolkits to make apps and video games for visionOS has been doable for a few month now, however Unity has a sturdy library of instruments, plugins, and different sources, notably for making video games, that can minimize out lots of the legwork in contrast to working in SwiftUI—at the least for some tasks.