Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We’re making changes to the Unity Runtime Fee pricing policy that we announced on September 12th. Access our latest thread for more information!
    Dismiss Notice
  3. Dismiss Notice

[RELEASED] VR Throw Lab - For better throwing in VR

Discussion in 'Assets and Asset Store' started by check_marc, Apr 28, 2020.

  1. check_marc


    Jan 26, 2013

    VR Throw Lab in the Asset Store

    Getting throwing mechanics to feel just right in VR can be tricky, especially if you’re asking the user to throw far and/or accurately. What feels right to the user is going to depend on tasks you’re asking them to perform, the hardware they’re physically holding, and their expectation of how thrown objects should behave in your virtual world.

    VR Throw Lab is a collection of tools that can be used to create the throwing mechanics that are right for your VR game and maintain a consistent experience across platforms.

    The package includes a playable Lab scene that can be used to test values without needing to take off the headset.

    Throw Lab is meant to be as platform-agnostic as possible, but some scripting is required to hook it into existing interaction systems. If you're using one of the supported SDKs (SteamVR, Oculus Integration, and Unity XR Toolkit) these connective scripts are included in the package. Otherwise, you will need to make sure the Throw Lab components have access to OnAttach and OnDetach events, and are not competing with any existing components to set a released object's velocity.

    If you have any difficulty integrating Throw Lab into your project or using the lab interface, feel free to reply to this thread or reach out to
    Last edited: Apr 28, 2020
    mgear likes this.
  2. kenlem1


    Mar 20, 2014
    I bought this today and it have to complement you. Throwing is VR is something almost everyone gets wrong. You're done a really nice job of explaining the problems and the solutions. Can't wait to incorporate this into my latest project.

    I was using the Oculus Grabber and Grabable scripts and, while they work. they just aren't "right". The release velocity and angular velocity are based on the center point of your controller for the last sample. I don't even think the rotations are transformed to the correct local space of the thrown object. Also, the release force gets applied to the center of mass of an object which isn't close to right except on tiny objects.

    Congrats on a well organized, useful asset.
    Last edited: May 29, 2020
  3. sipon


    Feb 8, 2009
    Do you have a VR demo build ? (Could be nice to publish your demo on sidequest too!)
  4. rmaroy


    Jul 3, 2017
    We were extremely disapointed with throw in VR (in "Super Hot" for example, some scene are extremely difficult when relying on throw toward distant ennemies). The imprecision is high enough to prevent from throwing a shuriken in another way than pushing your hand forward. This weakness, strongly worsen with strong throw, seemed to us to prevent all skill-based games based on throw (basketball, handball, petanque, grenades launching, hobbit stone throw.

    We have thus developed a throw method called "ExactThrow" (I'm a international level scientist for 20 years), that enables the headset and devices to throw object "exactly" as the player did, and as he intended to. Thus, it is a fully "skill-based" methodology, with no hypothesis on what the player intends to do (eye focus, headset direction). You can thus aim at something you directly look at, even a position on the ground without target. It will be released first in a game ("Dice sports") within few months.

    I can't wait to test your VR throw lab. Without skill-based games, VR risks to be limited to adventure games... It would be a pity. Player can get blasé by the immersive view, but none can be with sport pleasures like throwing object with skill.
  5. NetEdge


    Jun 3, 2020
    Very cool to play with. Even with target lock off, I felt like this was one of the smoothest implementations of throwing.

    I will note that I had to modify things to work properly. I'm using a Quest 2 and Unity 2019.4.14f. First off, when I installed it, it changed my input settings and installed a bunch of other packages. I think this is because of the SteamVR and UnityXR examples. I removed all the packages and those directories and rolled back my project settings (never could find where to set the input back to the non-new input system.) I think if I'd unchecked those folders when importing the asset, I would have been fine.

    Second, there was a showstopping error for me. I had to change ThrowHandle.cs to this:
            private void LateUpdate()
    if (_rootMotionTransform)
    _rootVelocity = (_rootMotionTransform.position - _previousRootPosition) / Time.deltaTime;
    _previousRootPosition = _rootMotionTransform.position;

    Otherwise, it would break before OnAttach fired later (which set _rootMotionTransform) and nothing would work. But with this fix it works.
  6. VagabondOfHell


    Sep 17, 2013
    @check_marc Great job on the asset! One suggestion I have is to ease the profile selection by having the configuration set defined in one scriptable object. So instead of dragging 5 profiles you only need to drag and configure the one.

    Thank you for the great asset!
  7. IF_test


    Feb 27, 2017
    Is it compatible with AutoHand Plugin? how can i use this with AutoHand plugin. Thanks in Advance
  8. VR_Rookie


    Nov 24, 2012

    I would also like to know this...please respond
  9. Iottech


    May 12, 2022
    Hello, VR Throw, I bought your asset. But it doesn't work in XR Toolkit.
    There is no error in the log like any other error.
    Please, can you update the last XR Toolkit. Or can you tell me how I can solve it?

    I tried adding XROrigin myself and tried but it had no effect.