53 lines
1.3 KiB
C#
53 lines
1.3 KiB
C#
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;
|
|
}
|
|
|
|
}
|