public HandOverHelper(KinectRegion kinectRegion, Dispatcher d) { var timer = new DispatcherTimer(TimeSpan.FromMilliseconds(33), DispatcherPriority.Normal, (s, a) => { var hoverNow = kinectRegion?.EngagedBodyTrackingIds?.Count > 0; if (hoverNow && !IsHover) { OnHoverStart?.Invoke(); } else if (IsHover && !hoverNow) { OnHoverEnd?.Invoke(); } IsHover = hoverNow; OnHoverKeyboardCheck?.Invoke(); }, d); Task.Run(async() => { await Task.Delay(TimeSpan.FromSeconds(3)); OnHoverStart?.Invoke(); }); }
protected virtual void Awake() { //register interactions: Register(_leftIndexStatus); Register(_leftIndexMCPStatus); Register(_leftMiddleMCPStatus); Register(_rightIndexStatus); Register(_rightIndexMCPStatus); Register(_rightMiddleMCPStatus); Register(_colliderStatus); //refs: _audioSource = GetComponent <AudioSource>(); //trigger volume: _trigger = gameObject.AddComponent <BoxCollider>(); _trigger.isTrigger = true; _trigger.size = Vector3.zero; //hooks: OnPressUpdated.AddListener(HandlePressUpdated); OnHoverUpdated.AddListener(HandleHoverUpdated); OnPressed.AddListener(HandlePressed); OnReleased.AddListener(HandleReleased); OnTouchEnd.AddListener(HandleTouchEnd); OnHoverEnd.AddListener(HandleHoverEnd); OnCanceled.AddListener(HandleCanceled); //sets: ResetElement(); ResetFrame(); ResetColors(); }
public void EndHover(RaycastHit hit) { OnHoverEnd.Invoke(hit); }