Unity Development
Recently active
When a Meta Quest Pro Controller is kept relatively still (even if your hand is shaky!), the tracking gets disabled until a couple of moments after a large movement.I have disabled auto-switching to hand.The biggest issue is that during this time, InputTrackingState/InputActionProperty flag isn't appropriately set to show that tracking is invalid. This applies to both:`UnityEngine.InputSystem.XR.TrackedPoseDriver.trackingStateInput` and `UnityEngine.XR.Interaction.Toolkit.currentControllerState.inputTrackingState`So, how do I prevent the controller tracking randomly turning offOR how do i detect when it turn off??
Hi everyone. I'm new to VR development and just created my first VR project in Unity for Meta Quest 3. When I run the game through Unity Link (Oculus Link) from my PC, it works smoothly with good graphics and no lag. My PC has 32 GB RAM and the game uses around 9 GB while running. But when I build it as an APK and run it directly on the Quest 3, I get problems like lagging, lower graphic quality, flickering, and sometimes low memory warnings. I know Quest 3 has only 8 GB RAM, so that might be part of it. But I would really appreciate help on how to optimize the game for Quest 3, what settings or methods I should use to reduce lag and improve quality, and whether there are tools to check what is using up memory on the Quest. Thanks a lot. I'm learning and want to get better at building for VR.
I’m developing an application using MRUK, Fusion, and the meta networked avatar building block. I’m working through rejoining the session after various disconnects. When I leave the boundary and re- enter, I destroy the network runner and then instantiate a new runner and networkedAvatar. The trouble is that the avatar spawns back at the origin so it’s not correctly superimposed on my body. I’d like to just correct this by applying a correcting transform to the avatar when it spawns, but I’m having a hard time figuring out how the new avatar system is determining its transforms. Anyone run into something like this?
Unity version: 6.1Meta XR SDK version: 76.0.1Hello,I am trying to create a colocated MR app which allows users that are remote to join as avatars. I am wondering what would be the best way to go about this? I am currently trying to call SpawnAvatar() when the Local Matchmaking fails for a guest, but I am not sure of this is a good way to do it. If you have tried this, or if there are any documentation or tutorials that I might have missed, please let me know. TIA
Probably so simple... but I've been stopped here for days...Steps so far:I start a new project with Unity 6.1 with template "Mixed Reality (MR) core"Switched to Android platform on build profilesImported Meta XR all in one packageImported Meta MR Utility Kit packageRemoved all items on my sample sceneExecuted Meta XR Tools -> project setup toolSelected OpenXR Plugin on the XR plugin managementAdded Building Blocks "Camera Rig" + "Passthrough" + "Controller Tracking" + "Ray Interaction"Placed a game object (mesh + material) on the scene and added a collider to it and a "Ray Interactable" scriptUp to this I run and everything goes right: my object appears on the scene, the passthrough works well and I can use my hands or the controllers to display a ray that impacts the object with the required cursor.What I cannot reach is to detect ray events on the object: I would like to change the color of the object material when the ray enters into the object or to make the object dissapear if
This setting keeps being reset every time I re-open my project in Unity 6. I'm not sure why it is not being saved. When I check my version control after changing the setting, hitting "save project" or saving the scene or other things that could be saving it, nothing seems to change. Not sure how to fix this. This problem occurs both when I try to change it using the Project Setup tool, or when going to that setting page and manually adding the oculus touch interaction profile.When this setting is not set, my controllers do not work in editor, so I cannot just ignore the setting, and this adds friction to development.
Hello, I am testing my app, and I only use WRITE_EXTERNAL_STORAGE for media access. However, in Headset Settings → Privacy & Security → Installed Apps → [my app], I see that three permissions have been added. My manifest looks like this:<!--?xml version="1.0" encoding="utf-8" standalone="no"?--> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.example.app" android:installlocation="auto"> <uses-permission android:name="android.permission.INTERNET" tools:node="merge"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"> <uses-permission android:name="android.permission.RECORD_AUDIO" tools:node="remove"> <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" tools:node="remove"> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO"
For quick iterations and prototyping, I depend on the building blocks version of the OVRCameraRig, which in the past used to be so that depending on your needs, you could add it to your scene with one click and then customize it according to your needs (i.e. passthrough or physics grab etc) Now, there is one bloated version that comes with EVERYTHING including a locomotion controller that adds things like vignette and the setup has so many complext dependencies, you cannot just delete/disable the relevant parts under interactors in the hierarchy.Is there a bloat free version like in the past, where I can simply add a hand grab functionality without adding 8 different interactors (simultaneous hand + controller etc)?Working with Meta Interaction SDK V77 in Unity 6.
Hello wise people,In our Unity 6 multiplayer project, we use Normcore + Matchmaking from the Epic Online Services. When connecting users to a multiplayer game with each other using Matchmaking, and under certain circumstances that are not fully understood, so-called "free sessions" (ghost sessions without the players) can sometimes be created on the server. This usually happens when players leave the room because of unknown reason. The session doesn't immediately close when the room is empty, but it still has a duration and a broadcast period (broadcast time: about 5 minutes, duration: about 10 minutes). This could be manually triggered during testing by disconnecting the internet or crashing the project from the Unity editor.Matchmaking works correctly until these ghost sessions occur. Once they occur, no player can join any newly created sessions. Only after waiting a full 10 minutes, when all ghost sessions have disappeared, everything return to normal.Has anyone encountered this pr
Hello everyone,I'm writing to report and inquire about a significant issue regarding Fixed Foveated Rendering (FFR) on the latest Unity and Meta software stack. After extensive testing, it appears the FFR implementation is causing severe performance degradation and graphical corruption, making it unusable.Software Stack:Unity: 6.1 (6000.1.15f1) and 6.2 (6000.2.f1)Render Pipeline: URP 17.0.3Graphics API: VulkanXR Backend: OpenXR 1.15.1Packages: Meta All-in-One SDK v77.0.0Target Device: Meta QuestThe Problem: In a scene that runs comfortably at a stable 90 FPS with ~50% CPU/GPU utilization, programmatically enabling FFR via the standard OpenXR API (XRDisplaySubsystem.foveatedRenderingLevel) causes the following:Immediate, severe performance drop to ~40-60 FPS.GPU utilization jumps to 90%+.This behavior occurs even when setting FFR to level 0 and makes the feature actively harmful to performance rather than helpful. Summary of Debugging Steps: We have confirmed this is not a scene sp
Hello,I am currently working on a Unity application for the Meta Quest 3. The application uses the New Input System. The user input device is a Bluetooth mouse.I noticed that the cursor of the mouse seems to be bounded, as in it reaches the edge of an invisible window. However, I want the mouse movement input to be unbounded, so that I continuously get a correct mouse movement if I keep moving the mouse to the e.g. right indefinitely.I tried several methods I found online that did not work for me:Setting the cursor lockState to CursorLockMode.Locked caused the application to strongly lag upon using the mouse.Resetting the mouse position using Mouse.current.WarpCursorPosition() after obtaining the movement data did not change the behavior.I use Unity 6.0 (6000.0.53f1). Did anyone else have a similar issue?
I currently need to link the player's Meta account to our game using the Unity Meta XR Platform SDK for login purposes. After passing the application permission check, the player's ID can be obtained through the Users.GetLoggedInUser() method. However, the Token cannot be obtained using the Users.GetAccessToken() method. This method always returns an empty result. Could you please tell me if I have not configured something correctly or if there is any missing step?
So, it seems there are lots of us out here that are struggling with OpenXR. Obviously when you read the instructions we're told that we should use OpenXR because Meta is leaning more towards OpenXR......yet all the building blocks are for the old Oculus plugin and don't work in OpenXR. Is that correct?For instance, setup a Unity project as OpenXR and then drag the Controllers building block in - it attaches itself to the OVR Rig and not the OpenXR rig.Also, we're recommended to use URP, but that only works with OpenXR, as the OVR Rig generates errors in URP.So, what is the offical line? Which method are we supposed to be developing with in Unity? And can you link an updated and definitive set of instructions. It seems the ones out there are all OVR instructions and not OpenXR.If we're supposed to be using OpenXR, how do we get it to display Quest controllers?Thanks everyone!
In Depth-API sample, I notice that in ShowDepthMap.shader, it suggest that switching different code in shader. fixed4 frag (Interpolators i) : SV_Target { UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); float3 uv = float3(i.uv, 0);//just show one texture so we don't get eye strain fixed4 col = _PreprocessedEnvironmentDepthTexture.Sample(sampler_PreprocessedEnvironmentDepthTexture, uv); //Uncomment the line below and comment the line above to change between the preprocessed depth texture and the raw depth texture // fixed4 col = _EnvironmentDepthTexture.Sample(sampler_EnvironmentDepthTexture, uv); col.rgb = float3(col.r, col.r, col.r); col.a = 1; return col; }I want to now what's the differece between _PreprocessedEnvironmentDepthTexture and _EnvironmentDepthTexture.And what are the data in them rgb channel?BTW, I want
Issue: Whenever I place an object on the wall or the floor the rotation is slightly off.Example: I point at my floor, hit the index trigger to spawn Instantiate the prefab, however its rotation is not 90° and it is slightly tilted.Is there any solution for that, which does not require a self written placement script?
HiWe have a project that needs to target Meta Quest 3 as well as Web(GL) in Unity 6.1. We are aware that the Meta SDK doesn't support the WebGL target and don't intend to use it there, but apparently some of its editor-only code generates compiler errors when the target becomes active, blocking any iteration:Library/PackageCache/com.meta.xr.sdk.core@fc2d39f84dd4/Scripts/Editor/OVRManagerEditor.cs(392,220): error CS0103: The name 'manager' does not exist in the current context Looking at this file, around line 86 it says:#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN || UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX || UNITY_ANDROID OVRManager manager = (OVRManager)target; // ...In other words, this is missing the UNITY_WEBGL compiler directive to have this compile in, or rather should probably be present on any platform to avoid errors. The other option is to move manager one line up.I'm currently investigating if there is a workaround, since the normal 'fix' for this
I tried the Meta Quest Runtime Optimizer utility and was inspired by the idea of integrating such useful functionality into Unity. On a simple test scene in my project everything worked well, but on a real complex scene I encountered several problems:1) When I tried to capture a frame, the console displayed a warning [OVRNetworkTcpClient] Sanity check failed. PayloadLength 333694and the frame capture has not happened. I tried deleting large parts of the scene (especially rigid body objects) and the frames were captured correctly, but it didn't help much. What could be the root cause?2) "What if?" Analysis gives ьу confusing results: some objects report negative render time. Is it normal behavior and can I just ignore those reports?
I'm trying to figure out if the app library is really as flaky as it seems or if I'm simply doing something wrong. Many times, I will bring up the app library, and my title simply won't be there, even though it's installed. Just now, I saw it there, then I used the three-dot menu to get to "settings" and checked that I have the correct release channel selected, and then when I returned to the App Library, I watched it refresh and my app was gone. So were a bunch of other apps. The "all" category showed 24 items, and the "installed" category showed 25. I rebooted my headset, and the all category now had 35 items, with 34 in the "installed" category, and my title was again visible.Another question is how I force my title to update when I change the release channel. I swear I saw an "update" button on the main title details screen that I used before, but this seems to be missing now, and no matter what I do, I can't get it to update, despite the HMD tel
Hello,I'm looking for the Audio To Expression feature in the Movement SDK.I've installed Meta XR Movement SDK 77.0.2 and the Face Tracking Samples.Unfortunately there is no Audio To Expression.Also no documentation on how to use it manually, without samples.regards,Lanzelot
I found that the Meta3 VR device does not display the direction specified by the Unity scene Camera when showing the screen (for example, (0,0,0) Euler Angle), but instead rotates 12° downward on the screen, that is, (12,0,0) Euler Angle. Note that this does not directly modify the Transfrom but seems to be an internal change made by meta itself.I know that the best comfort zone for people is when the forward perspective is slightly lower. Meta's approach is very considerate.But I want to know how I can obtain the specific Meta parameters for this downward offset Angle.
We've been developing MR features into our app for the past 6 months and recently started testing a release candidate for Horizon Managed Services (HMS) managed headsets (enrolled with ArborXR). We ran into an issue with the Immersive Debugger causing exceptions on headsets set up using HMS/Arbor when using SDK v74. We updated to v77 which fixed the Immersive Debugger issue, but then the MR features stopped working also on headsets running "personal" accounts.It seems like the MRUK is not creating the rooms in the scene, and thus our app doesn't initialise our custom room set up. I've seen posts about needing to have the app registered in the Developers Hub, which we had in the past but deleted. We've created new apps in the developer hub and registered them in the Unity Tools>Platform settings for the Meta SDK and still nothing.We get a log from MRUK Shared saying "Unable to bind OpenXR entry", which I suspect is the issue causing the MRUK to not work. Everything works fine in the
I have managed to replicate this repo to show native texture in VR mode.However, when I switch it to pass-through mode, the texture is not showing.I have dived into it a bit, and found that that's because of the conflict of the pipeline, which makes the native plugin not initialized.I am aware of the recently released Unity-PassthroughCameraAPISamples, but what I was trying to do was showing texture that is not from the local camera.I also knew WebCamTexture, but I wonder if it is possible to show texture not from the local camera.Everything works well in VR mode, here is the log when switching to pass-through mode.2025-07-23 16:42:12.288 2195-2218 BufferQueueProducer com.oculus.vrshell E [SurfaceTexture-115-2195-274](id:893000001ad,api:1,p:1137,c:2195) dequeueBuffer: BufferQueue has been abandoned 2025-07-23 16:42:12.288 1137-1137 CompositionEngine surfaceflinger E ANativeWindow::dequeueBuffer failed for display [com.oculus.andro
My cube with the snap interactor snaps just fine to the snap interactable, but when I try to grab and remove my cube, the position transforms weirdly as if it was still connected to the snap interactable. I am sure I have set up my scene fine. Has anyone had a similar issue before?
I am unable to find a method or tutorial for creating custom hand gestures in Unity for the new Meta all in one sdk for my mixed reality project and I don't even know this can be done or not, I just want to create a custom hand gesture for my application if possible please help me with the implementation.
Hi I'm using both hands and controller for a mixed reality application. I'm using unity 2022.3.21f1 with meta all in one xr sdk and oculus. when headset unmount or power button is pressed, the headset doesn't recognize hands nor controller. I'm using both controller as well as hands for interaction. any one know any fix for this issue ? Thanks in advance.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.