Skip to main content
‹ Back to Tutorials
Intermediate Unity

Unity VR XR Interaction Toolkit - Make Grabbable Objects

Aug 3, 2022
About this tutorial

In this Unity VR tutorial, I'll show using the XR Interaction Toolkit to make Grabbable objects. Super Easy!! ► Art Assets - Polygon City - Low Poly https://bit.ly/3ScOYa1 My discord link ► https://discord.gg/DgUdNDT7KU ► Download Unity at https://unity.com Chapters: 00:00 Introduction 00:20 Cr

Written Guide

Grabbing and throwing objects is the foundational VR interaction. Unity's XR Interaction Toolkit handles most of it through a single component, but the defaults produce a stiff, floaty grab and — less obviously — leave your thumbstick fighting the object you're holding. This guide covers both the setup and the fix.

Step 1 — Create an object at a believable scale Add a 3D cube. By default Unity cubes are one meter on each side, which is 100 centimeters or about 33.3 inches — in VR that's a crate, not something you palm. Scale it down to 0.07 to get an object that fits comfortably in a hand. Getting a feel for real-world scale early is one of the bigger adjustments when moving from flat-screen development to VR.

Step 2 — Give it a visible material Create a new material, name it something like cube_mat, and set it to a bright color so the object reads clearly against the environment. Assign it to the cube. Trivial, but a gray cube against gray level geometry makes testing harder than it needs to be.

Step 3 — Add XR Grab Interactable Add the XR Grab Interactable component. A Rigidbody comes along automatically, which means physics now applies. Leave Use Gravity checked so the object falls when released, matching what the player expects from the real world. Make sure Is Kinematic is unchecked — a kinematic Rigidbody ignores physics forces and the object won't respond to being grabbed and thrown. Change Collision Detection from Discrete to Continuous Dynamic so a thrown object can't pass through walls between physics frames.

Step 4 — Fix the movement type In the XR Grab Interactable component, change Movement Type from Instantaneous to Kinematic. Instantaneous teleports the object to the hand position each frame — accurate, but visually it pops between positions. Kinematic moves it through the physics system, producing continuous motion that tracks the hand rather than jumping to it. Then enable Smooth Position and Smooth Rotation so both translation and wrist rotation are filtered, which removes the micro-jitter that makes held objects look unstable.

There's also a Custom Reticle option here for signaling that an object is interactable, if you want visual feedback on hover.

Step 5 — Test and find the anchor control problem Enter play mode, move to the cube, and squeeze the grip button to pick it up. It rotates naturally with your hand and drops to the floor on release. But try turning with the thumbstick while holding it and you'll see the problem: snap turn rotates the cube in your hand, and pushing the stick forward and back pushes the object away from you and pulls it back. That's Anchor Control, and it's on by default.

Step 6 — Disable anchor control Go to your XR Origin, select both the left hand and right hand controllers, and on the XR Ray Interactor component uncheck Anchor Control. Now the thumbstick controls only locomotion and turning. Test again: you can snap turn, turn a full 180 degrees, and move the stick freely while holding the cube, and the object stays exactly where your hand puts it.

Anchor control is genuinely useful for ray-based distance manipulation, so it's worth understanding rather than blindly disabling — but for direct hand grabbing it's almost always in the way.

Unity tools by Bliz Studio
Built for our own games — now on the Asset Store

Multi Tag — unlimited hierarchical tags for any GameObject. Hierarchy Pro — style your whole hierarchy with rules. Made by a Unity dev, for Unity devs.

Explore our Unity assets →