FAQs - Develop
Frequently asked questions related to development
Frequently asked questions related to development
Make sure all of these are checked in the project settings > publishing settings:
Custom Main Manifest
Custom Main Gradle Template
Custom Base Gradle Template
Custom Gradle Properties Template
The application can appear to be on a single screen as it covers the entire screen space. Therefore, if you are using overlay canvas, switch it to world space or JMRSDK canvas.
This issue usually occurs when the files are not properly imported into the project. If you are facing this issue, follow the below-mentioned Steps: 1. Delete the folder inside the Assets >> Plugins >> Android 2. Re-import the JMRSDK plugins folder.
Make sure that your gameobjects are not named as "Head" or "Left" or "Right" other than the ones present in JMRMixedReality prefab by default.
Make sure that only "Head" Camera is tagged as "MainCamera".
If using properly, follow the URP guide to set it up properly
Go to the head, left, and right cameras and enable/disable the required layer in the culling mask of the cameras.
Do check the culling mask at runtime -
On Head camera - Left and Right layer gets disabled On Left camera - Head and Right layer gets disabled On Right camera - Head and left layer gets disabled
Default behavior: Layer number 13 is used internally for the screen casting. So layer 13 does not render anything in left and right cameras. This might change depending on your project settings.
Layer "Left" and Layer "Right" does not render on respective cameras so you can use these layers if you want to render some object only on some particular camera.
In unity editor, Goto JMRSDK > Core > Plugins > Android > Readme > tmrServicesSDK-release-JMRSDK Version
In apk,
Check the AndroidManifest.xml of your application build using android studio
or any 3rd party analyzer for meta data
- com.jiotesseract.DeviceServiceSDKVersion
corresponding to which SDK version is present.
With JMRSDK 4.27.10, implementing quit functionality is only possible through JMR Toolkit and with the Home page setup.
These are the debug logs/warnings/errors to be ignored in the current JMRSDK
Cannot destroy GameObject that is part of a prefab instance.
NullReferenceException: Object reference not set to an instance of an object JMRSDK.JMRCameraManager.OnEnable ()
When two or more primitives have very similar distances to the camera. This would cause them to have near-similar or identical values in the z-buffer, which keeps track of depth.
To fix that, physically move the objects further apart
Make sure that you have added the global listener to the gameobject if you want it to register input when the pointer is not focusing on the gameobject
To enable the Controller Input Actions APIs, you must add JMRInteraction Script to a GameObject in your scene.
Use this keybinding for triggering input in the unity editor.
Refer to this:
You can get the pointing source from JMRPointerManager. Refer to this:
Although the controller can remain connected when 'gaze and dwell' is enabled, only the home button works to switch the application to the MR Launcher screen.
None of the other buttons or actions are registered when 'Gaze and Dwell' is enabled.
Use this code to change the controller in application instructions
Refer to Skybox in AR devices
The same method can be used to change the far clipping distance of cameras as well.
FOV is changed automatically according to the selected device.
However, if you want to update the FOV, you can do so after a few frames from the start of the JMRMixedReality prefab instance.
Use this code for specific device type to change FOV only for that device.