12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
-
- namespace NRKernal
- {
- using UnityEngine;
-
-
- public class GazeTracker : MonoBehaviour
- {
-
- [SerializeField]
- private NRPointerRaycaster m_Raycaster;
-
- private bool m_IsEnabled;
-
-
- private Transform CameraCenter
- {
- get
- {
- return NRInput.CameraCenter;
- }
- }
-
- private void Start()
- {
- OnControllerStatesUpdated();
- }
-
- private void OnEnable()
- {
- NRInput.OnControllerStatesUpdated += OnControllerStatesUpdated;
- }
-
- private void OnDisable()
- {
- NRInput.OnControllerStatesUpdated -= OnControllerStatesUpdated;
- }
-
- private void OnControllerStatesUpdated()
- {
- UpdateTracker();
- }
-
- private void UpdateTracker()
- {
- if (CameraCenter == null)
- return;
- m_IsEnabled = (NRInput.RaycastersActive && NRInput.RaycastMode == RaycastModeEnum.Gaze);
- m_Raycaster.gameObject.SetActive(m_IsEnabled);
- if (m_IsEnabled)
- {
- transform.position = CameraCenter.position;
- transform.rotation = CameraCenter.rotation;
- }
- }
- }
-
- }
|