Object placed above MRUK furniture "jumps" up/down when pushing right thumbstick
Context Unity + Meta XR Building Blocks. I'm building an AR app (Passthrough + MR Utility Kit). I show a world-space UI dialog above an MRUK table (Canvas in world space, RectTransform placed at the table center + slight lift to sit on the surface -> all via script). Symptom Whenever I push the right controller thumbstick downward, the dialog appears to "jump" ~0.5 m up, and pushing again makes it jump back down. This happened both on the device and in the Simulator. What it actually is It's not the dialog moving. Logging showed Camera.main.transform.position.y toggling between two values (1.047 <-> 1.547), while the dialog's world Y stayed constant.Solved46Views0likes1CommentPhysical transition between rooms in XR Quest 3 - How to?
Hello, I'm making a mixed reality app, and I have scanned two rooms in my house. I have used the Passthrough, MR Utility Kit and Effect Mesh building blocks, but I can't move between rooms without the screen getting covered up in grey, even though I can see the other room being rendered in the effect mesh. How can I disable this "out-of-bounds" effect in order to transition physically between both rooms? The first image is from the room I started the app, the second is from the second room looking towards the first.64Views0likes1CommentUnity OpenXR Meta regression: passthrough doesn't work when focus is lost and regained
Problem: 1. Passthrough initially works fine in the app. 2. Take the headset off, the display goes dark. 3. Put the headset back on, the display turns back on. 4. Unexpected: passthrough no longer works in the app! Also, passthrough doesn't work in the first run after the app has been installed. This is a regression. Passthrough always worked in the last version of the Unity OpenXR Meta package I used, which I think was 2.0.1. Suspected Cause: MetaOpenXRPassthroughLayer.Dispose() in the Unity OpenXR Meta package appears to be broken - it's not idempotent. When Unity's OpenXRCompositionLayersFeature.OnSessionEnd() disposes it, the underlying resources are gone for good. So when OpenXRCompositionLayersFeature.OnSessionBegin() creates a new one, it doesn't work. Version: Unity 6 (6000.0.51f1) My selected XR plugin: Unity OpenXR Meta 2.2.0 Meta Quest 3 I think these packages are irrelevant to this problem, but including the versions anyway: Meta XR Core SDK 77.0.0 Meta MR Utility Kit v77.0.0 Meta XR Platform SDK 77.0.0233Views2likes2CommentsTracked hand pushing away menu (canvas) attached to other hand
I am keeping my left hand almost completely still here in the video demo below, but something pushes the left hand or the menu away when I get the right hand near the other hand/ menu (hard to tell if tracking issue due to other hand being near left hand vs hand interacting with menu or menu item colliders or rigibodies. Video of error in demo Video of unity project setup I have an empty gameobject called 'menu-hand_attatcher' with this script on: using System.Collections; using System.Linq; using UnityEngine; using Oculus.Interaction; // for OVRHand & OVRSkeleton public class AttachMenuToHand : MonoBehaviour { [Tooltip("The disabled Canvas or prefab you want to spawn")] public GameObject menuPrefab; // assign your menu_0 prefab here [Tooltip("Which bone/joint to anchor the menu to")] public OVRSkeleton.BoneId anchorJoint = OVRSkeleton.BoneId.Hand_WristRoot; [Tooltip("Offset from that joint in metres")] public Vector3 localOffset = new Vector3(0f, 0.05f, 0.06f); private OVRHand hand; // we’ll find this automatically private bool attached; private void Awake() { // Auto-find the first active OVRHand in the scene (left or right) hand = FindFirstObjectByType<OVRHand>(); } private IEnumerator Start() { if (hand == null) { Debug.LogError("❌ No OVRHand component found anywhere in the scene!", this); yield break; } // Grab the OVRSkeleton attached to that hand OVRSkeleton skel = hand.GetComponent<OVRSkeleton>(); if (skel == null) { Debug.LogError("❌ OVRHand has no OVRSkeleton component!", this); yield break; } // Wait until the system has tracked the hand & built out all bones while (!hand.IsTracked || skel.Bones.Count == 0) { yield return null; } // Find the specific bone (wrist, index tip, etc.) by BoneId OVRBone targetBone = skel.Bones .FirstOrDefault(b => b.Id == anchorJoint); if (targetBone == null) { Debug.LogError($"❌ Couldn't find bone {anchorJoint} on the skeleton!", this); yield break; } Transform jointTransform = targetBone.Transform; // Spawn or enable the menu prefab GameObject menuInstance = menuPrefab.activeSelf ? menuPrefab : Instantiate(menuPrefab); menuInstance.SetActive(true); menuInstance.transform.SetParent(jointTransform, worldPositionStays: false); menuInstance.transform.localPosition = localOffset; menuInstance.transform.localRotation = Quaternion.identity; attached = true; } private void LateUpdate() { if (attached && Camera.main != null) { // Keep the menu facing the user’s camera transform.LookAt(Camera.main.transform.position, Vector3.up); } } } Anchor joint is set to XR Hand_Start Items in menus have collider + rigidbody (no gravity) to allow acting as trigger It's not so clear in the video but it appears going near the colliders for the buttons freaks it out and flips the menu around, but so does just crossing the right hand over the left (menu anchored to left wrist), or getting it near the canvas. So hard to tell what its interacting with. 1. What can I try using this method I'm already using? (I'm very new to Unity and coding so redoing things or doing them a different way could take me a lot of time and I don't have much) 2. If I were to - is there a better way to do this menu/canvas and hand attachment? Here's my script of my menus using UnityEngine; using UnityEngine.UI; public class MenuNavigator : MonoBehaviour { [Tooltip("Prefab of the submenu to open when this button is poked")] public GameObject submenuPrefab; // debounce flags private bool _hasActivated = false; private bool _ignoreNextTrigger = true; private Transform _canvasRoot; void Awake() { // cache the Canvas transform so we know where our menus live Canvas c = GetComponentInParent<Canvas>(); if (c != null) _canvasRoot = c.transform; else Debug.LogError("[MenuNavigator] No Canvas found!", this); } void OnEnable() { // every time this menu (and its buttons) become active: _ignoreNextTrigger = true; _hasActivated = false; } void OnTriggerEnter(Collider other) { if (_ignoreNextTrigger) return; // ignore the initial overlap if (_hasActivated) return; // and only fire once per exit/enter // 1) Spawn the next submenu prefab under the Canvas if (submenuPrefab != null && _canvasRoot != null) { var newMenu = Instantiate(submenuPrefab, _canvasRoot); newMenu.transform.localPosition = Vector3.zero; newMenu.transform.localRotation = Quaternion.identity; newMenu.transform.localScale = Vector3.one; } else { Debug.LogWarning("[MenuNavigator] Missing submenuPrefab or Canvas!", this); } // 2) Find *your* menu panel: the direct child of the Canvas Transform panel = transform; while (panel != null && panel.parent != _canvasRoot) { panel = panel.parent; } if (panel != null) { Destroy(panel.gameObject); } else { Debug.LogWarning("[MenuNavigator] Couldn't find menu panel root!", this); } _hasActivated = true; } void OnTriggerExit(Collider other) { // 1st exit after spawn turn off ignore, subsequent exits clear the activated flag: if (_ignoreNextTrigger) _ignoreNextTrigger = false; else _hasActivated = false; } } Many thanks :)27Views0likes0CommentsPassthrough activates on Unity App on Resume from Stand-By
So I've build an app using Unity and the SDK provided by Meta on Unity Asset Store. The verison is the 2022.3.44f1 and the application works on Quest 2 and Quest 3 devices. The problem is that when the devices go in Stand-By mode and then they "Wake up" again, the application starts to flicker showing the reality with the passthrough and the application in a very fast and flashing way. The only way to stop this is to press the Power Button and make them go sleep again and then retry waking them up hoping that the problem is gone, sometimes it works at first attempt other times it needs more times. Is there somethign that I can do? This last part is interesting: https://youtube.com/shorts/7aZ976HhLz4?feature=share I'm also posting a video recorded with the phone through the lens because when I tried to use the recording program of the Quest, this was properly recording the applicazion while the flickering was happening, so the passthrough was not visible in the recording. This let's me think that the problem doesn't come from the Unity application or other settings that I should do...449Views0likes1CommentBug report - Half transparent materials leak Passthrough layer over solid objects
I am kindly asking the community for the help and Meta staff to take care of this bug report or redirect me to the better place to submit the bug report. Possible duplicate of: https://communityforums.atmeta.com/t5/Unity-VR-Development/Transparent-Materials-render-Passthrough-through-them-even/td-p/1060049 My setup is pretty much similar. Description: Semi-transparent unlit objects leak passthrough layer over the other objects in the scene. Most of the built-in transparent shaders (or similar like fade mode) are affected by the bug. Bonus: UI (and Sprite) shaders also have their own problems with passthrough and transparency - they leak the clear flags color instead. Bonus 2: I saw that the standard material with transparent mode is rendered over other objects as intended but invisible over the passthrough... Video link: https://drive.google.com/file/d/1IY28LuH17AACvX-IhW4aKclZlq_M-aix/view?usp=sharing Environment: - Meta Quest Pro - Unity 2021.3.25f1 - Oculus Integration SDK 54.1 (Package Manager - June 15, 2023) Steps to reproduce the bug: (0. You can fast-forward by downloading the scene I have created: https://github.com/ShivekXR/Passthrough-Transparency-Bug) 1. Follow the guide to create the basic scene (setup for Quest Pro): Tutorial - Create Your First VR App on Meta Quest Headset | Oculus Developers 2. Follow the guide to add the passthrough to the basic scene: Get Started with Passthrough | Oculus Developers 3. Add a semi-transparent object over another one using (standard / generic / built-in) unlit material. 4. Build and run the app and see the result (bug). Expected Result: Semi-transparent materials should be rendered over other objects in the scene. The solid objects behind them should block passthrough. Severity: Personally - I think 4 out 5. It doesn't crash the app, but makes passthrough visually unpleasant, confusing, not convincing effect. Any particle effect with opacity look bad by default.7KViews4likes9CommentsEnable Passthrough during loading or splash screen. Three dots background remains black.
Hi there. We are developing an MR app for Quest 2 and 3. We can use Passthrough successfully in all our app except during the loading and splash screen, where black background is shown. We aren't using a splash screen, the three loading dots are shown instead. We followed those two guides to have Passthrough enabled in the loading screen, but non of the options seems to work: https://developer.oculus.com/documentation/unity/unity-passthrough-gs/#enable-based-on-system-recommendation https://developer.oculus.com/documentation/unity/unity-customize-passthrough-loading-screens/ *We are using Meta XR All-in-One SDK v 63.0 *Insight Passthrough is enabled in OVR Manager *System Splash Screen Background is set to Passthrough. *We don't have a splash screen in Player Setting nor in OVR. *We also tried to enable passthrough background in the AndroidManifest. Are we missing something?? Also, we loaded a splash screen in the OVR to do some testing, and it was shown with black background. We deleted the image and all the associated changes after the test, but the splash image is still there in subsequent builds. Thank you all!3.3KViews1like7CommentsApp rejection due to VRC.Quest.Functional.9
I am submitting a fully MR only app to Meta Quest store early access and I am getting rejection due to the app failing VRC.Quest.Functional.9 : The user's forward orientation is not reset when the Oculus Home button is long-pressed. I have selected the tracking origin to be Floor and enable Allowed Recenter on OVR Manager, yet I am still getting this rejection. Also, I feel that this should be an requirement for a fully MR app since all the objects in the scene are tracked to user's space and should be change or be recentered. Anyone know what do I need to do to fulfil the requirement? For more context, I am using MRUK to detect user's space.Solved1.9KViews0likes7CommentsQuest 3 PCVR passthrough view misaligned after recentering using hand gesture
Hi, I am working on a unity PCVR project with quest 3 and hand tracking. I face the problem that after I use quest's built-in hand gesture recentering function to recenter my view, the virtual view get recentered but the passthrough view get mis-aligned. Need help ! Thx Unity Ver: 2022.3.34f1 Meta SDK Ver: 65.0.01.4KViews0likes5CommentsReload Scene Mesh after Application Start
Hello everyone, my problem is that the room mesh doesn't update. I want the room mesh to be updated, everytime my application is started again. However, it seems like the mesh loaded from the first time is always reused and doesn't update, even when I update the application. How I update: I build an AR app (.apk file) on my laptop with Unity and deploy it to my Meta Quest 3 headset, which overrites the previous .apk file. What I see: a flickering mesh all over the place of the "original room", even when I go to a neighbouring room, it shows the mesh of the first room (it's like looking through a wall). I followed the set up instructions and my "Hello World" and first tries worked properly. For my current version I am Using the following building blocks: Camera Rig Passthrough Scene Mesh MR Utility Kit Scene Debugger As you can guess I am quite new to Meta Horizon Development. I've been stuck on this problem for quite a while now. Any tips/advice/recources to resolve this are highly appreciated.Solved685Views0likes1Comment