Troubleshooting¶
Common issues and how to resolve them.
Tracking Issues¶
Object is not detected¶
- Initial pose too far off — move the TrackedBody GameObject closer to where the real object appears relative to the camera
- Wrong scale — verify the mesh dimensions match the real object in meters
- No tracking model (silhouette mode) — silhouette tracking requires a generated model. Click Generate Silhouette Model in the TrackedBody inspector. Edge tracking doesn't need this.
- Camera not providing frames — check that the Image Source is set correctly on XRTrackerManager and the camera is active
Tracking is jittery¶
- Increase stability — raise
Rotation StabilityandPosition Stabilityon the TrackedBody - Enable stationary mode — if the object is fixed in the real world, enable
Is Stationaryon the TrackedBody - Low contrast — silhouette tracking needs foreground/background separation. Try edge tracking if contrast is low
- Insufficient correspondence iterations — increase
Correspondence Iterationson XRTrackerManager (default 5)
Tracking drifts or loses the object¶
- Background too similar — silhouette tracking struggles when the background matches the object color. Switch to edge tracking or add depth
- Object too featureless — spheres, smooth cylinders, and plain boxes have few distinguishing features. Add depth tracking if a sensor is available
- Fast motion — edge tracking is more sensitive to rapid movement. Switch to silhouette if the camera or object moves quickly
- Partial occlusion — if more than ~60% of the object is hidden, tracking may fail. Enable occlusion handling if another tracked body is blocking it
Tracking quality is low but object appears correct¶
- Custom thresholds — the default
Quality to Startmay be too high for your object. Enable custom thresholds and lower them - Adjust modality — some objects track better with edge than silhouette. Experiment with the
Tracking Methodsetting
Model Generation Issues¶
Model generation is very slow¶
- High-poly mesh — decimate meshes above 50k triangles. Internal geometry that isn't visible externally can be removed
- Too many subdivisions — reduce the subdivisions setting in Model Settings
Detection works from some angles but not others¶
- Viewpoint coverage — check the Viewpoint Coverage setting. Use Full Sphere for objects viewed from any angle, or restrict to Upper Hemisphere / Side Ring for objects with known orientation
Platform Issues¶
iOS: Camera feed not appearing¶
- Camera Usage Description not set — add a description in Player Settings > Other Settings > Camera Usage Description
- ARSession missing — ensure an ARSession component exists in the scene
- AR Foundation not installed — install AR Foundation and ARKit XR Plugin via Package Manager
Android: Tracking doesn't start¶
- ARCore not supported — check that the device supports ARCore (see Google's device list)
- ARCore not installed — the app may need Google Play Services for AR installed on the device
- Image Source wrong — must be set to
Injectedfor AR Foundation
Windows: No camera detected¶
- Camera in use — another application may have exclusive access to the camera
- Camera name mismatch — if using
Auto Select Camera Name, verify the exact camera name matches - Calibration file missing — if using a calibration file, ensure it's in StreamingAssets
License Issues¶
Tracking stops after 60 seconds¶
- Free tier limit — the Free license allows 60 seconds of tracking per session. Contact support@xrproj.com for a 15-day trial
- Restart the app or Unity Editor to reset the timer
License shows as expired¶
- Check expiry date — select the
.licfile in Unity to view its details in the Inspector - Request a new license — contact support@xrproj.com
"Machine ID Mismatch"¶
- Pro license bound to different machine — Pro licenses are node-locked. The Machine ID is shown in the XRTrackerManager inspector during Play Mode. Provide this ID when requesting a license
Performance¶
Tracking is too slow¶
- Lower camera resolution — reduce the capture resolution on the Image Source settings
- Reduce correspondence iterations — lower
Correspondence Iterationson XRTrackerManager (minimum 1, but tracking quality decreases) - Simplify meshes — fewer triangles = faster rendering per tracking frame
High GPU usage¶
- Multiple tracked bodies — each body adds rendering overhead. Disable occlusion if not needed