Tracked 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 :)3Views0likes0CommentsWhen trying to upload a game to Applab i get an error
When trying to upload a game to Applab i get an error saying "Android Target SDK version is 34, but should be 32 or lower (targetSdkVersion in AndroidManifest.xml)." im not sure what that means. Does anyone have a solution or can anyone help me?1.4KViews1like3CommentsMeta XR Audio Plugin for FMOD Setup
I am trying to follow this page: https://developer.oculus.com/documentation/unity/meta-xr-audio-sdk-fmod-req-setup/ But it's leaving out a pretty important step when it comes to Quest development. There's a section called Copy the plugin to the Unity Project Which links to a page from FMOD, that has nothing to do with the specific Meta plugin setup. I have FMOD working for Windows, but specifically for Quest I get an error the plugin is not loaded 06-13 12:25:58.205 2686 2743 E Unity : SystemNotInitializedException: [FMOD] Initialization failed : Loading plugin 'libMetaXRAudioFMOD' from 'liblibMetaXRAudioFMOD.so' : ERR_FILE_NOTFOUND : File not found. 06-13 12:25:58.205 2686 2743 E Unity : at FMODUnity.RuntimeManager.get_Instance () [0x00000] in <00000000000000000000000000000000>:0 I attached a picture of my FMOD Settings, the location of the plugin, and the plugin inspector. Where the documentation falls part, is what do I put in the FMOD settings that it correctly loads the plugin on Quest?1.1KViews0likes1CommentPrevent Hands from going through table.
Hi, I am using the Unity Movement SDK to controle an Avatar in my unit scene. I want the player to sit in front of a table in real life and place his hands on it. In VR, the hands should also be on a table. I can roughly adjust it so that the hands are on the table. The only problem is that there are always small inaccuracies when tracking and the AVatar's hands keep disappearing into the table. Is there a way to prevent the hands from sliding through the table and always lying on it?629Views0likes1CommentHow can I get a depth map(or point cloud) just from my quest 3's depth sensor???
I know there is a depth sensor on the quest 3 and I want to use its depth data for further image research, but my MQDH only supports recording video from the binocular camera. 😞 I've checked the documentation for the Depth API, and it seems that the depth information has been encapsulated many times, and I wonder if there is a way to get the depth map or point cloud image directly, thank you very much!!🙏16KViews1like36Commentswindow.requestAnimationFrame not working in newest 33.3 Meta browser in WebXR mode
I used window.requestAnimationFrame inside a WebXR app, which previously work fine in the Meta Browser, but it seems automatically update to 33.3 on June 3rd, and now this function only works when I press the Meta button to pop up the browser but not work at all when I hide the browser and enter the XR mode. Any helps? Maybe I need to change the function? But I don't see an alternative to count frames accurately. Basically I want to have a timeManager that supervise the timing of different assets in the app.880Views1like2CommentsMRUK not found despite it being created...?
I'm currently using Quest 3 v62 (now v63) and Unity 2022.3.10f1. Working on a random spawn mechanic in the MR environment where objects can spawn on the ceiling. The feature worked fine when I tested it on Unity Playtest, but once I built it on the standalone Q3 (or simply hooked it up with a quest link), the scene could no longer be implemented. The room setup does indicate that I have my tables and walls, but there's no ceiling. I presume the Spatial data didn't transfer properly (I did write a script to grant permission to Q3 for spatial data, and clicked the Permission Requests On Startup) I have no idea where it all went south. Any ideas?1.7KViews0likes2CommentsVirtual Desktop with cable connection
I have read some posts here and there and found out, that Quest3 supports USB-Ethernet Adapter. After some tests, the best adapter ist this: https://www.amazon.de/gp/product/B0C3GHBLB6/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1 It works great, i can charge my quest at gaming and if i start at 95%...play a hour....i end at 95%. It´s a absolut stable connection without interferences and i can use godlike with 500mbps! (measured is ~480mbps, but 500mbps works without any problem) For me the best PCVR link/experience i can get! For use you need: -developer account -activated USB debugging -DHCP in Router Short summary: -turn off WLAN in Quest 3 -LAN cable to router <> adapter -PD to adapter -Adapter to Quest 3 -Turn on and check if the store is loading without WLAN, then you know, it´s working Greetings....ah, and if a meta developer read this: PLEASE DON`T TURN OFF THIS FEATURE!19KViews8likes31CommentsBuild Deployment Automation Failing on Server Side using ovr-platform-tool.exe
Hi, I've been working on a bash script that deploys to the app lab using the ovr-platform-tool.exe, the idea is to hook it up in my build automation machine and for specific targets (like a release) deploy it automatically from Unity Cloud Build to the App Lab. I referenced a lot of the code provided in the Unity SDK, particularly the content of OVRPlatformTool.cs I'm getting a server side error: [error] ERROR: An unexpected error occurred [error] 2024-02-24T03:02:04.219Z [ERROR] Server log: {"app_id":6906526809465140,"client":"COMMAND_LINE","log_level":"ERROR","event_name":"UNEXPECTED_ERROR","stack_trace":"TypeError: Cannot read properties of undefined (reading 'eventStart')\n at y (C:\\snapshot\\D_Zfull-fbsource\\edenfs\\redirections\\arvr\\js\\temp\\build-ovr-platform-util\\lib\\ovr_platform_util.js)\n at Function.from (<anonymous>)\n at Object.genUploadChunksConcurrently (C:\\snapshot\\D_Zfull-fbsource\\edenfs\\redirections\\arvr\\js\\temp\\build-ovr-platform-util\\lib\\ovr_platform_util.js)\n at C:\\snapshot\\D_Zfull-fbsource\\edenfs\\redirections\\arvr\\js\\temp\\build-ovr-platform-util\\lib\\ovr_platform_util.js\n at runMicrotasks (<anonymous>)\n at processTicksAndRejections (node:internal/process/task_queues:96:5)\n at async C:\\snapshot\\D_Zfull-fbsource\\edenfs\\redirections\\arvr\\js\\temp\\build-ovr-platform-util\\lib\\ovr_platform_util.js","extra":"{\"caught\":true,\"os\":\"{\\\"platform\\\":\\\"win32\\\",\\\"arch\\\":\\\"x64\\\",\\\"type\\\":\\\"Windows_NT\\\"}\",\"cli_version\":\"1.96.0.000001\",\"compatibility_version\":2,\"session_id\":\"6906526809465140_2024-02-24T03:01:58.650Z\",\"command\":\"upload-quest-build\",\"app_id\":6906526809465140,\"platform\":\"ANDROID_6DOF\"}","platform":"ANDROID_6DOF","cli_version":"1.96.0.000001","session_id":"6906526809465140_2024-02-24T03:01:58.650Z","binary_id":"","duration":null,"is_patch_upload":0,"duration_since_session_start":5569} [error] 2024-02-24T03:02:04.242Z [ERROR] Server log: {"app_id":6906526809465140,"client":"COMMAND_LINE","log_level":"ERROR","event_name":"COMMAND_FAILED","stack_trace":"TypeError: Cannot read properties of undefined (reading 'eventStart')\n at y (C:\\snapshot\\D_Zfull-fbsource\\edenfs\\redirections\\arvr\\js\\temp\\build-ovr-platform-util\\lib\\ovr_platform_util.js)\n at Function.from (<anonymous>)\n at Object.genUploadChunksConcurrently (C:\\snapshot\\D_Zfull-fbsource\\edenfs\\redirections\\arvr\\js\\temp\\build-ovr-platform-util\\lib\\ovr_platform_util.js)\n at C:\\snapshot\\D_Zfull-fbsource\\edenfs\\redirections\\arvr\\js\\temp\\build-ovr-platform-util\\lib\\ovr_platform_util.js\n at runMicrotasks (<anonymous>)\n at processTicksAndRejections (node:internal/process/task_queues:96:5)\n at async C:\\snapshot\\D_Zfull-fbsource\\edenfs\\redirections\\arvr\\js\\temp\\build-ovr-platform-util\\lib\\ovr_platform_util.js","extra":"{\"caught\":true,\"os\":\"{\\\"platform\\\":\\\"win32\\\",\\\"arch\\\":\\\"x64\\\",\\\"type\\\":\\\"Windows_NT\\\"}\",\"cli_version\":\"1.96.0.000001\",\"compatibility_version\":2,\"session_id\":\"6906526809465140_2024-02-24T03:01:58.650Z\",\"command\":\"upload-quest-build\",\"app_id\":6906526809465140,\"platform\":\"ANDROID_6DOF\"}","platform":"ANDROID_6DOF","cli_version":"1.96.0.000001","session_id":"6906526809465140_2024-02-24T03:01:58.650Z","binary_id":"","duration":null,"is_patch_upload":0,"duration_since_session_start":5592} [error] [2024-02-24T03:02:05.869Z] - 7.3.35.2.7.4 - ERROR: User script exited with status 1. Aborting. [error] [2024-02-24T03:02:05.995Z] - 7.3.35.2.7.4 - ERROR: Build of 'release' failed. 783: unexpected token at '' Any idea about whether it's a bug or something I'm missing on my end? This is my current deployment script: https://gist.github.com/hector-yumebau/2611b0c094de90231ab1be461bf5e5e62.3KViews1like7CommentsOVR Plugin failure for detection space / importing Room-Data into Unity
Since you, MetaQuestSupport, are clearly ignoring my post in the Unity VR Developer forum and my direct messages as well, I will ask this here again: I want to use the Room-Setup feature from the Quest 3 in Unity in Mixed Reality. I get an error for importing the transform-data for the gameobjects of the Quest 3-defined room in Unity. All of the walls and room objects are at (0,0,0) with no additional rotation and I get this error: [OVRPlugin] [XRCMD][failure] [XR_ERROR_HANDLE_INVALID]: xrLocateSpace(*(XrSpace*)space, baseSpace, ToXrTime(GetTimeInSeconds()), &spaceLocation), arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.cpp:11831 (arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.h:302) It seems to be an issue that is unique to my PC, but I can not figure out why and where the issue is. We tried the same scene and multiple other with the room model or the new MR Utility Kit in it, and we don't know what is different in my system. We already tried uninstalling all of Unity, Meta and Oculus desktop and cleaning the registry / Appdata. It works on different PCs with the same Headset, it also works on different PCs when I am logged in into Unity and Oculus Desktop. We also switched out the Cable, the Headset and the USB-C port. We also deactivated all of Windows Defender and disconnected the PC from the Web. Everything needed in Unity is activated, as well as Developermode on the Quest and in Oculus Desktop. This should not be the issue, since the same project works on other PCs. The Setup is: 13th Gen Intel(R) Core(TM) i9-13900K 3.00 GHz 32.0 GB DDR5 Nvidia RTX4090 Windows 10 Pro Version 22H2 OS build 19045.3930Solved6.7KViews0likes11Comments