public bool Equals(FocusedObject that) { if (this.IsValid && that.IsValid && this.GameObject.GetInstanceID() == that.GameObject.GetInstanceID()) { return(true); } if (!this.IsValid && !that.IsValid) { return(true); } return(false); }
/// <summary> /// Updates the gaze focus according to the latest gaze data. /// </summary> public void UpdateGazeFocus() { if (!IsInitialized) { return; } IEnumerable <GazePoint> lastGazePoints; if (!TryGetLastGazePoints(out lastGazePoints)) { FocusedObject = Scorer.GetFocusedObject(); return; } FocusedObject = Scorer.GetFocusedObject(lastGazePoints, Camera); }
/// <summary> /// Unregisters the supplied <see cref="IGazeFocusable"/> component so /// that the <see cref="GameObject"/> it belongs to no longer can be /// focused using eye-gaze. /// </summary> /// <param name="gazeFocusableComponent"></param> public void UnregisterFocusableComponent(IGazeFocusable gazeFocusableComponent) { var instanceId = gazeFocusableComponent.gameObject.GetInstanceID(); if (_focusedObject.IsValid && _focusedObject.GameObject.GetInstanceID() == instanceId) { // TODO: set to other object with high focus confidence instead? FocusedObject = FocusedObject.Invalid; } FocusableObjects.Remove(instanceId); if (Scorer != null) { Scorer.RemoveObject(gazeFocusableComponent.gameObject); } if (_multiScorer != null) { _multiScorer.RemoveObject(gazeFocusableComponent.gameObject); } }