// Start is called before the first frame update void Start() { handModel = GetComponentInChildren <SkinnedMeshRenderer>(); handInteractor = GetComponentInParent <ActionBasedControllerManager>().GetComponentInChildren <XRBaseControllerInteractor>(); handInteractor.selectEntered.AddListener(OnGrab); handInteractor.selectExited.AddListener(OnLetGo); }
void OnTriggerExit(Collider other) { if (other.CompareTag("XRInteractor")) { interactor = null; isInProximityArea = false; OnProximityAreaExitFunction(); onProximityAreaExit?.Invoke(); } }
void OnTriggerEnter(Collider other) { if (other.CompareTag("XRInteractor")) { interactor = other.GetComponent <XRBaseControllerInteractor>(); isInProximityArea = true; OnProximityAreaEnterFunction(); onProximityAreaEnter?.Invoke(); } }
// Start is called before the first frame update void Start() { if (anim == null) { anim = GetComponent <Animator>(); } xRBaseController = GetComponentInParent <XRBaseControllerInteractor>(); if (xRBaseController != null) { xRBaseController.onHoverEnter.AddListener((XRBaseInteractor) => { isOnInteractableEvent = true; OnSelectedEnter(XRBaseInteractor); }); xRBaseController.onHoverExit.AddListener((XRBaseInteractor) => { if (!isOnSelectedEvent) { isOnInteractableEvent = false; OnHoverExit(); } }); xRBaseController.onSelectEnter.AddListener((XRBaseInteractor) => { isOnInteractableEvent = true; isOnSelectedEvent = true; OnSelectedEnter(XRBaseInteractor); }); xRBaseController.onSelectExit.AddListener((XRBaseInteractor) => { isOnSelectedEvent = false; OnHoverExit(); }); } XRController rController = GetComponentInParent <XRController>(); if (rController != null) { isLeftHand = rController.controllerNode == UnityEngine.XR.XRNode.LeftHand; } GripTouch.OnButtonDown += GripButtonDown; GripTouch.OnButtonUp += GripButtonUp; triggerHandler.OnValueChange += OnTrigger; ThumbTouch.OnButtonDown += ThumbButtonDown; ThumbTouch.OnButtonUp += ThumbButtonUp; TriggerTouch.OnButtonDown += TriggerTouchButtonDown; TriggerTouch.OnButtonUp += TriggerTouchButtonUp; interactable = GetComponentInParent <IInteractableCustom>(); }
private void Awake() { interactor = GetComponent <XRBaseControllerInteractor>(); interactionManager = interactor.interactionManager; originalTriggerType = interactor.selectActionTrigger; }