private void Update() { var eyeGazeProvider = CoreServices.InputSystem?.EyeGazeProvider; if (eyeGazeProvider != null) { gameObject.transform.position = eyeGazeProvider.GazeOrigin + eyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters; EyeTrackingTarget lookedAtEyeTarget = EyeTrackingTarget.LookedAtEyeTarget; // Update GameObject to the current eye gaze position at a given distance if (lookedAtEyeTarget != null) { // Show the object at the center of the currently looked at target. if (lookedAtEyeTarget.EyeCursorSnapToTargetCenter) { Ray rayToCenter = new Ray(CameraCache.Main.transform.position, lookedAtEyeTarget.transform.position - CameraCache.Main.transform.position); RaycastHit hitInfo; UnityEngine.Physics.Raycast(rayToCenter, out hitInfo); gameObject.transform.position = hitInfo.point; } else { // Show the object at the hit position of the user's eye gaze ray with the target. gameObject.transform.position = eyeGazeProvider.GazeOrigin + eyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters; } } else { // If no target is hit, show the object at a default distance along the gaze ray. gameObject.transform.position = eyeGazeProvider.GazeOrigin + eyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters; } } }
private void Update() { // Update GameObject to the current eye gaze position at a given distance if (InputSystem?.EyeGazeProvider?.IsEyeGazeValid == true) { GameObject target = InputSystem.EyeGazeProvider.GazeTarget; if (target != null) { // Show the object at the center of the currently looked at target. EyeTrackingTarget etTarget = target.GetComponent <EyeTrackingTarget>(); if ((etTarget != null) && (etTarget.cursor_snapToCenter)) { Ray rayToCenter = new Ray(CameraCache.Main.transform.position, target.transform.position - CameraCache.Main.transform.position); RaycastHit hitInfo; UnityEngine.Physics.Raycast(rayToCenter, out hitInfo); gameObject.transform.position = hitInfo.point; } else { // Show the object at the hit position of the user's eye gaze ray with the target. gameObject.transform.position = InputSystem.EyeGazeProvider.HitPosition; } } else { // If no target is hit, show the object at a default distance along the gaze ray. gameObject.transform.position = InputSystem.EyeGazeProvider.GazeOrigin + InputSystem.EyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters; } } }
private void Start() { myEyeTrackingTarget = this.GetComponent <EyeTrackingTarget>(); if (myEyeTrackingTarget != null) // Shouldn't be null since we use RequireComponent(), but just to be sure. { myEyeTrackingTarget.OnSelected.AddListener(TargetSelected); } }
private void Update() { string newNote = ""; if (eyeGazeProvider != null) { gameObject.transform.position = eyeGazeProvider.HitInfo.point; //gameObject.transform.position = eyeGazeProvider.GazeOrigin + eyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters; //gameObject.transform.position = eyeGazeProvider.GazeOrigin + eyeGazeProvider.GazeDirection; EyeTrackingTarget lookedAtEyeTarget = EyeTrackingTarget.LookedAtEyeTarget; // Update GameObject to the current eye gaze position at a given distance if (lookedAtEyeTarget != null) { // Show the object at the center of the currently looked at target. if (lookedAtEyeTarget.EyeCursorSnapToTargetCenter) { newNote = "HIT eye target, centered"; Debug.Log(newNote); Ray rayToCenter = new Ray(CameraCache.Main.transform.position, lookedAtEyeTarget.transform.position - CameraCache.Main.transform.position); RaycastHit hitInfo; UnityEngine.Physics.Raycast(rayToCenter, out hitInfo); gameObject.transform.position = hitInfo.point; } else { newNote = "HIT eye target, but not centered"; Debug.Log(newNote); // Show the object at the hit position of the user's eye gaze ray with the target. //gameObject.transform.position = eyeGazeProvider.GazeOrigin + eyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters; gameObject.transform.position = eyeGazeProvider.GazeOrigin + eyeGazeProvider.GazeDirection; } } else { if (eyeGazeProvider.HitInfo.distance == 0) { newNote = "Not hit, default " + eyeGazeProvider.HitInfo.distance.ToString("F2"); Debug.Log(newNote); // If no target is hit, show the object at a default distance along the gaze ray. gameObject.transform.position = eyeGazeProvider.GazeOrigin + eyeGazeProvider.GazeDirection.normalized * defaultDistanceInMeters; } else { newNote = "Not hit, wall? " + eyeGazeProvider.HitInfo.distance.ToString("F2"); Debug.Log(newNote); // Hit a gameObject without lookedAtEyeTarget script attached gameObject.transform.position = eyeGazeProvider.HitInfo.point; } } } if (!newNote.Equals(note)) { note = newNote; notificationUpdate.AddNote(note, Color.white); } }
void Start() { PV = GameObject.FindGameObjectWithTag("WorldEvent").GetComponent <PhotonView>(); eyeTrackingTarget = gameObject.GetComponent <EyeTrackingTarget>(); eyeTrackingTarget.OnLookAtStart.AddListener(SetGazeOn); eyeTrackingTarget.OnLookAway.AddListener(SetGazeNull); /* * RPC_EyegazeGlasses.event_GazeOnObjGlasses.AddListener(OnGazeOn); * RPC_EyegazeGlasses.event_GazeNullGlasses.AddListener(OnGazeNull); */ }
public void UpdateLog(string inputType, string inputStatus, EyeTrackingTarget intendedTarget) { if ((Instance != null) && (isLogging)) { if (logStructure != null) { object[] data = MergeObjArrays(GetData_Part1(), logStructure.GetData(inputType, inputStatus, intendedTarget)); string data_format = GetStringFormat(data); Instance.CustomAppend(String.Format(data_format, data)); prevTarget = intendedTarget; } } }
// Private methods private void Start() { // Init variables cursorEnterTime = DateTime.MaxValue; eyeTarget = this.GetComponent <EyeTrackingTarget>(); eyeTarget.OnLookAtStart.AddListener(this.OnLookAtStart); eyeTarget.OnLookAway.AddListener(this.OnLookAtStop); // Store the original colors for later resetting the object to its original state after highlighting SaveOriginalColor(); if (Overlay_GameObj != null) { Overlay_GameObj.SetActive(false); } }
protected virtual void Start() { // Init children Initialize(); handZoomEnabled = ZoomGestureEnabledOnStartup; Initialize(); // Init eye tracking target if (myEyeTarget == null) { myEyeTarget = GetComponent <EyeTrackingTarget>(); } if (EyeSaccadeProvider != null) { EyeSaccadeProvider.OnSaccadeY += ResetScroll_OnSaccade; } }
public override object[] GetData(string inputType, string inputStatus, EyeTrackingTarget intTarget) { // Let's prepare all the data we wanna log // Eye gaze hit position Vector3?eyeHitPos = null; if (EyeTrackingProvider?.GazeTarget != null && EyeTrackingProvider.IsEyeGazeValid) { eyeHitPos = EyeTrackingProvider.HitPosition; } object[] data = new object[] { //------------------------------- // Cam / Head tracking CameraCache.Main.transform.position.x, CameraCache.Main.transform.position.y, CameraCache.Main.transform.position.z, 0, 0, 0, // Smoothed eye gaze signal EyeTrackingProvider.IsEyeGazeValid ? EyeTrackingProvider.GazeOrigin.x : 0, EyeTrackingProvider.IsEyeGazeValid ? EyeTrackingProvider.GazeOrigin.y : 0, EyeTrackingProvider.IsEyeGazeValid ? EyeTrackingProvider.GazeOrigin.z : 0, EyeTrackingProvider.IsEyeGazeValid ? EyeTrackingProvider.GazeDirection.x : 0, EyeTrackingProvider.IsEyeGazeValid ? EyeTrackingProvider.GazeDirection.y : 0, EyeTrackingProvider.IsEyeGazeValid ? EyeTrackingProvider.GazeDirection.z : 0, (eyeHitPos != null) ? eyeHitPos.Value.x : float.NaN, (eyeHitPos != null) ? eyeHitPos.Value.y : float.NaN, (eyeHitPos != null) ? eyeHitPos.Value.z : float.NaN, }; return(data); }
public virtual object[] GetData(string inputType, string inputStatus, EyeTrackingTarget intTarget) { return(System.Array.Empty <object>()); }
public TargetEventArgs(EyeTrackingTarget hitTarget) { HitTarget = hitTarget; }
public virtual object[] GetData(string inputType, string inputStatus, EyeTrackingTarget intTarget) { return(new object[0]); }