New Feature: VRTK_ObjectLerp (lerp an VRTK_InteractableObject on grab).
See original GitHub issueOverview
General idea is to add new functionality that smoothly animates an object into position when you grab it. This will be an optional / extra script that you can attach to an VRTK_InteractableObject
, providing a slightly different mechanic and visual from the existing immediate grab.
Code In-progress
- Created a new script class called
VRTK_ObjectLerp
that smoothly handles the lerp position and rotation of an object over time. - You can attach this script to an
VRTK_InteractableObject
, which then will set itself up to use theVRTK_ObjectLerp
. - When an object is grabbed by
VRTK_InteractGrab
this class checks on the grabbingVRTK_InteractableObject
to see if there is a valid / configuredVRTK_ObjectLerp
available, and if the object is set tolerpTransformOnGrab
. - If the
VRTK_InteractableObject
is setup to lerp on grab, then rather than complete the grab as normal, theVRTK_InteractGrab
method calls back to a new method on theVRTK_InteractableObject
that will start the lerp to position, i.e.StartLerpTransformOnGrab
. - The
VRTK_InteractableObject
will then call theVRTK_ObjectLerp
to start a coroutine for the lerp to position, i.e.DoObjectTranslation
.
Not yet done, to be confirmed:
- Once the
DoObjectTranslation
method completes, callback / notify theVRTK_InteractableObject
that it’s done. - The
VRTK_InteractableObject
then calls theVRTK_InteractGrab
script to grab the object again. Only this time it will tell theVRTK_InteractGrab
somehow that we don’t need to lerp, just do a normal / immediate grab.
Other things to consider, as per our chat on Slack:
- What to do if the object is ungrabbed mid-way, before completion: : Move the object back to the start position. : Or if it’s pass the half way point complete the lerp. : Or just drop the object where it is. : Perhaps a combination, could have settings to specificy what you want to happen.
- From @bddckr: “Should work with every grab mechanic, but I think currently some of these things take at least 1 frame, so would be visible. Maybe instantiate a temporary copy and turn of visibility and collisions etc.”: : Not sure I understand what this is referencing yet… perhaps I’ll see this issue once the base code I’ve explained above is working.
Issue Analytics
- State:
- Created 6 years ago
- Reactions:3
- Comments:16 (5 by maintainers)
Top Results From Across the Web
VRTK_InteractableObject
VRTK_BaseGrabAction - A Grab Action mechanic for determining how to manipulate the Interactable Object when grabbed by the secondary interacting object. Script ...
Read more >[002] Interacting with objects - VRTK v4 Weekly Livestream
9:35 - Brief reason for why Tilia uses Unity Package Manager and not Unity Asset Store 10:02 - Make an object interactable with...
Read more >Object manipulator - MRTK 2
Rotate about grab point: Rotate object using rotation of the hand, but about the pointer ray hit point. Useful for inspection. Two handed ......
Read more >HTC Vive Tutorial for Unity
Learn how to use the HTC Vive with Unity! Grab and throw objects, shoot lasers and teleport around an area.
Read more >VIVE Archives
It's worth noting that another great way to setup UI interactions is via VRTK (VR Tool Kit). VRTK is something I've used in...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Got this working last night, should have a PR in this weekend.
Sorry for the delay, just time always is against me looking at things 😦