Smoothing the XR Journey: Solving the Collision and Locomotion Conundrum

Richard Morgan
2 min readJan 8, 2024

Introduction

Greetings, fellow Unity VR developers! Ever faced the head-scratching issue where your XR Rig starts behaving like it’s in a dance-off when you grab an object? You’re not alone. Many of us have wrestled with this peculiar collision and locomotion bug. But fear not! I’ve got a nifty solution to share that’ll smooth out your XR Rig’s movements, ensuring it only busts moves when you want it to.

The Bug: A Collision Dance

Here’s the scenario: you’re in your VR world, you reach out, grab an object, and suddenly, your XR Rig starts to jitter or move unexpectedly. This bug can turn a smooth VR experience into a wild ride. The culprit? Unwanted interactions between the grabbed objects and the XR Rig.

The Solution: Layered Harmony

The fix lies in Unity’s Layer Collision Matrix, a tool often overlooked like a hidden spell in a wizard’s book. Here’s how to cast this magic:

1. Setting the Stage

  • Create Custom Layers: In Unity, create two new layers — let’s call them ‘Grab Interaction’ and ‘XROrigin’.
  • Assign Layers: Place all your grabbable objects on the ‘Grab Interaction’ layer, and your XR Rig on the ‘XROrigin’ layer.

2. The Magic of Non-Interaction

  • Physics Panel: Navigate to the Project Settings and find the Physics panel.
  • Layer Collision Matrix: Here lies the secret — the Layer Collision Matrix. It’s like a grid that determines which layers can and can’t interact with each other.
  • Disable Interactions: In the matrix, find where the ‘Grab Interaction’ and ‘XROrigin’ layers intersect. Uncheck this box, essentially telling Unity that these two layers should ignore each other.

3. Testing the Spell

  • Back to the VR World: Jump back into your VR scene. Grab an object. Move around. You’ll find that your XR Rig now glides through the virtual world unaffected by the objects you interact with. It’s like giving your XR Rig a cloak of invisibility against those pesky grabbable objects.

The Result: Smooth Sailing

Voilà! You’ve just fixed the collision and locomotion bug. Your XR Rig will now respect your spatial boundaries, and your VR world will feel more intuitive and responsive.

Conclusion

This simple yet effective fix is a testament to the power of understanding Unity’s layers and physics. So, go ahead and apply this fix to your VR projects. Watch as your XR Rig moves with the grace of a swan, no longer thrown off by the objects you interact with. Happy developing, and may your VR journeys be ever smooth!

--

--