Created
June 7, 2021 22:54
-
-
Save mminer/df80606774459d3327c848541082ac96 to your computer and use it in GitHub Desktop.
Unity XR component to move objects relative to their original position.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using UnityEngine.XR.Interaction.Toolkit; | |
public class OffsetGrabInteractable : XRGrabInteractable | |
{ | |
Vector3 interactorPosition; | |
Quaternion interactorRotation; | |
protected override void OnSelectEntered(XRBaseInteractor interactor) | |
{ | |
base.OnSelectEntered(interactor); | |
interactorPosition = interactor.attachTransform.localPosition; | |
interactorRotation = interactor.attachTransform.localRotation; | |
var hasAttachTransform = attachTransform != null; | |
interactor.attachTransform.position = hasAttachTransform ? attachTransform.position : transform.position; | |
interactor.attachTransform.rotation = hasAttachTransform ? attachTransform.rotation : transform.rotation; | |
} | |
protected override void OnSelectExited(XRBaseInteractor interactor) | |
{ | |
base.OnSelectExited(interactor); | |
interactor.attachTransform.localPosition = interactorPosition; | |
interactor.attachTransform.localRotation = interactorRotation; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment