Recent Discussions
XR Composition Layers are invisible when the MetaXR feature group is enabled
I am using Unity's XR Composition Layers to render a canvas (like a floating desktop) on a Meta Quest 3. The problem I am facing is that the canvas is invisible as soon as the Meta XR Feature Group is enabled. I am using: Unity 6000.1.2f1 Meta XR Core SDK 77.0.0 XR Composition Layers 2.0.0 OpenXR 1.14.3 URP 17.1.0 Unity OpenXR Meta (for passthrough) 2.1.1 The composition layers work well as long as the ‘Meta XR’ Feature Group is disabled in the XR Plugin Management settings for OpenXR. As soon as it is checked, without changing anything else, the composition layer is invisible on device. All my tests on device were done with an actual build, not via Oculus Link, as a build is where is should eventually work. The same issue was posted here on the Unity Discussions Forum. Unity has confirmed that it is caused by a bug in the Meta SDK package, which appears to be disabling certain layers at runtime, which prevents Unity's code from executing properly on the headsets. Is this already being looked into? When can an update be expected? Thank you in advance!Mr.Watts.Quest2 days agoHonored Guest0likes0Comments- decap_052 days agoHonored Guest0likes0Comments
MRUK 77.0 LoadSceneFromDevice() Doesn't Work
I just updated my MRUK package from 69 to 77, and now MRUK.LoadSceneFromDevice() doesn't work. It instead logs an error: Error Unity [XR] [OpenXR Meta] xrLocateSpace failed with result XR_ERROR_HANDLE_INVALID Error Unity [XR] [OpenXR Meta] [AnchorProvider] xrLocateSpace request failed with error: XR_ERROR_HANDLE_INVALID I am using the Meta OpenXR plugin. Note that the MRUK MonoBehaviour's checkbox "Load Scene On Startup" does still work. But the problem with this fallback is after my app launches Space Setup and the user completes it, then returns to my app, the new room the user created will not be available. So the user will have to restart my app.darkveins_2 days agoExplorer0likes0CommentsTracked 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 :)cyanmoon2 days agoHonored Guest0likes0CommentsPassthrough play mode doesn't work since Quest 3 update yesterday
I don't know how long the update was but it was working before the update and now it's not working. Normally I open unity and as long as I have quest link open on the headset and on my pc, clicking play in unity will launch the passthrough app preview on my headset. Now, when I go to launch link on the headset, it begins the colourful loading screen animation and then after a moment says "headset/pc disconnected - please disconnect and disconnect your headset" (or similar. Even though the desktop app shows the header as connective and active, and the quest home settings menu preview shows link as active.cyanmoon2 days agoHonored Guest0likes1CommentOVR Overlays and judder
I am running into issues with Judder when using OVR Overlays. I can't seem to repro it in the sample project, and I've tried to narrow it down by ensuring my actual project and the sample project are as close as I can get them. I'm rendering to a render texture from a camera. The OVR Overlay is not attached to the user's head in any way, and the camera I'm using to render to the texture is also not attached to the head. I'm wondering if there's some setting I'm missing that might cause pretty awful judder. Has anyone else experienced this and have a fix? I tried updating to the latest SDK, but no dice there. I'm on Unity 2021.3.21f1 and using the Oculus Integration v55 package. Oh and I'm on URP.SolvedJoshuaVe4 days agoProtege0likes2CommentsMedia files downloaded to app's persistent data folder being deleted
Hi everyone. In our app we are using media files which we download via that android download manager. The files are being saved to the persistentDataPath for the app. We have noticed that these files are disappearing randomly from the devices and this is proving to be a major issue. I thought it might be something related to android's GC but: A - I don't think it deletes files in the persistentDataPath B - We tried to replicate the behavior by downloading the files and letting devices sit idle for 10 days but the files were still there I would appreciate any help with finding out the cause for the file deletion, and advice regarding the best practices for media files downloading in general. Our app downloads a large amount of files (our experiences have several pictures, videos and jsons that fully define it) and we use the android download manager to allow the device to keep downloading while the headset is not mounted.AVRUnity4 days agoHonored Guest0likes0CommentsNew App for VR/MR Headsets
Hey Im looking to connect with a VR/MR Developer to create a "Star Walk" type App for Headsets. I have produced a similar App for the IPhone/IPad market & now Im looking to create a similar user experience for on the Meta Quest/Playstation VR platforms. Hit me up if you have the kung fu to do this!axloliver20164 days agoHonored Guest0likes2Comments