using UnityEngine; using UnityEngine.XR.Interaction.Toolkit; using UnityEngine.XR.Interaction.Toolkit.Interactables; public class CustomKnob : XRGrabInteractable { [SerializeField] private Transform offsetChild; [SerializeField] private Transform father; private Vector3 initialPos; private Quaternion initialRot; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { initialPos = transform.position; initialRot = transform.rotation; } // Update is called once per frame void Update() { watchTheHandle(); } private void watchTheHandle() { Vector3 globalPositionHandle = transform.parent.TransformPoint(transform.position); Vector3 globalPostionOffset = transform.parent.TransformPoint(offsetChild.transform.position); Vector3 offset = globalPositionHandle - globalPostionOffset; father.transform.LookAt(offset); } protected override void OnSelectEntered(SelectEnterEventArgs args) { base.OnSelectEntered(args); Debug.Log("Salut"); } protected override void OnSelectExited(SelectExitEventArgs args) { base.OnSelectExited(args); transform.position = initialPos; transform.rotation = initialRot; } }