Build fails when set to Full Immersive

Hi! I have downloaded and successfully built the Template project to device but when I change from Mixed Reality to Full Immersive in Project Settings the Xcode build to Device fails with “Undefined symbol: _GetPolySpatialNativeAPI”.
Is there any step that I am missing?

2 Likes

Hi,

I asked around, looks like a bug with fully immersive apps, the fix is being worked on and should hopefully be out soon. The workaround right now is to disable PolySpatial Runtime and remove the PolySpatial packages from your project for fully immersive apps:

  • com.unity.polyspatial
  • com.unity.polyspatial.visionos
  • com.unity.polyspatial.xr

then rebuild the project again. Sorry for the inconvenience!

3 Likes

The workaround fixed it for me.
Thank you Vera!

This helped me also. It built successfully, but when I start the app on device, it’s stuck on a “loading” screen window. And in Xcode, when the app is running, I’m getting a warning, “Presenting a drawable without a device anchor. This drawable won’t be presented.” Any ideas? I’m also using the 0.4.1 template.

1 Like

I got the same “loading screen” window issue as @StLouis24 mentioned. I cannot move my camera within the VR room because of it. Is anyone else facing the same issue?
I just wanted to check whether the movement is prohibited because of the loading screen or due to some issue created in the input mapping.

2 Likes

We’re experiencing the same behaviour. I was able to run in simulator, but running on device and after accepting the immersive “check for objects” prompt I get the hanging “loading screen” and “Presenting a drawable…” error spam. We are running on Apple visionOS XR Plugin 0.3.3 using “Device” as target.

1 Like

Hey there! Sounds like there are a few issues here. Hopefully a little bit of context will help:

  • I’m glad you were able to fix the build error by removing the PolySpatial packages. You shouldn’t have to, but it’s currently a bug in our build post processors. We will try to get this fixed in the next release.
  • The Presenting a drawable without a device anchor. error can show up sometimes if you take too long (like >30 seconds) to press “OK” on the “check for objects” dialog. Or it can just show up anyway. As far as I can tell, it’s benign. I see it about half the time when testing VR builds and things still work as expected. Anyway, it should be safe to ignore this message. Something else must be going wrong.
  • The “Loading” window is also expected. At the moment, it is needed to automatically launch into the immersive space, but we should hopefully be able to get rid of it eventually. You should be able to close/dismiss it once you see your VR content rendering.

Which brings us to… do you actually see your VR content? In the current state, do you see passthrough? Black screen? Anything at all besides the Loading window?

@Ajaydharan you said:

I cannot move my camera within the VR room because of it.

Is this in the simulator? Does this mean you are seeing VR content, but aren’t able to look around? If so, this may be because you are missing an AR Session GameObject/component in your scene, which is required for VR input (head tracking) to work. Can you try adding an AR Session with an input manager (Create > XR > AR Session)?

@danielkanda you said:

We are running on Apple visionOS XR Plugin 0.3.3 using “Device” as target.

What version of Xcode are you using? What OS version do you have on your device? We posted a compatibility matrix on the pinned Release Notes post which should help you figure out what version(s) you need. If you are using 0.3.3, you need to build from Xcode 15 beta 8 and use a device with visionOS beta 3. If your device has the latest OS version (beta 4) installed, you will need to upgrade Xcode and PolySpatial to their latest versions, Xcode 15.1 beta and PolySpatial 0.4.3 (with Unity 2022.3.9f1 or above).

Hopefully this helps resolve some of your issues! We are making an effort to ship a sample project of some kind that demonstrates VR features. Ideally, you should just be able to flip the App Mode setting from MR to VR and things will just work, but that is not currently the case.

I am seeing passthrough. I left the loading screen on for about 3 minutes to see if was actually loading something but no changes.

And I only built the 0.4.1 SampleScene with no changes made to it–do we need to have loaded some kind of skybox?

No, if you see passthrough it means that we haven’t kicked off VR rendering. I’ll see if I can reproduce the issue on my end.

1 Like

Good news! I was able to reproduce your issue, and I was able to get things working after making some modifications to the template. Here are the steps I took to get things working:

  • Open visionOSTemplate-0.4.3 in Unity 2022.3.11f1
  • Remove PolySpatial packages (as @vcheung-unity explained above)
  • Delete Assets/ExampleAssets/Scrips/Bounded/*
  • Delete Assets/Tutorial/*
  • Switch AppMode to VR
  • Add XR Origin (Create > XR > XR Origin (VR))
  • Move XR Origin so the content is in view position:(0, -1, -1)
  • Set Camera Y Offset to 0
  • Add AR Session (Create > XR > AR Session)
  • Delete Scene Camera
  • Disable Quality / HDR in Assets/UniversalRenderPipelineAsset and Postprocessing / Enabled in Assets/UniversalRenderPipelineAsset_Renderer (not sure if this was needed)
  • Enable Rendering / Depth Texture in Assets/UniversalRenderPipelineAsset
  • Build with Device SDK
  • Set up code signing in Xcode
  • Run build

I see the default skybox and sample template objects, and I’m able to look around on device and if I build to simulator. Hopefully this works for you, too! I think the most important steps are setting up the XR Rig and enabling Depth Texture.

3 Likes

It worked!!!

I still had the loading window persist, but that’s ok. And then I would get crazy errors if I disabled com.unity.polyspatial, but it built fine with that one still enabled.

If anybody is having a hard time finding, App mode, it’s file/build settings (switch platform to visionOS)/ player settings/ XR Plugin-in Management/ Apple visionOS.

Lastly, the edges of the shapes were super aliased/jagged in VR mode compared to passthrough. Is this to be expected, and is this how it will always look in this mode?

1 Like

Woo hoo!

Yep. That’s the expected behavior for the time being.

Were those compile errors in Assets/ExampleAssets/Scrips/Bounded/BoundedInputManager.cs etc.? I had to delete a bunch of scripts that depend on the PolySpatial packages.

For now, this is expected. We need to make some engine-side changes to enable foveated rendering which will enable us to render at the full resolution of the display.

I’m also not entirely sure why that content is showing up beneath your feet. Moving the XR Origin should compensate for that but there may be other scripts in play that I’m forgetting about. Anyway it sounds like you’re unblocked! :partying_face:

We’ll make sure this is much less painful in the next round of updates.

Now trying to reproduce them, it works fine haha. Basically if I’d quit the project it would advise I start it in safe mode. I started in safe mode, re-enabled the PolySpatial package, quit again, restarted and it built fine. I disabled the package again and quit and this time, the project loaded fine.

Ok, awesome. There are a few features where I’m torn between mixed and fully immersive, so good to know this is possible.

Ah yeah, thank you!!

@mtschoen That did the trick and I am able to move around the scene in the simulator except for the loading screen window issue you mentioned. Thanks for the info.

Also, is it possible to simulate the input events like button click, ray pointer, etc in the simulator?

Yes, clicking the primary mouse button in the simulator window will send input events to the app. Unfortunately, our beta packages are missing the plumbing code for bringing those events into Unity for Virtual Reality builds, but we will fix this in the next release.