void ShowFeedback(List <ProxyFeedbackRequest> requests, Node node, string controlName, string tooltipText, int priority = 1) { if (tooltipText == null) { tooltipText = controlName; } List <VRInputDevice.VRControl> ids; if (m_Controls.TryGetValue(controlName, out ids)) { foreach (var id in ids) { var request = new ProxyFeedbackRequest { node = node, control = id, priority = priority, tooltipText = tooltipText }; this.AddFeedbackRequest(request); requests.Add(request); } } }
void ShowScaleFeedback() { List <VRInputDevice.VRControl> ids; if (m_Controls.TryGetValue(k_Crawl, out ids)) { foreach (var id in ids) { var request = new ProxyFeedbackRequest { control = id, node = node == Node.LeftHand ? Node.RightHand : Node.LeftHand, tooltipText = "Scale" }; this.AddFeedbackRequest(request); m_ScaleFeedback.Add(request); } } }
void ShowFeedback(List <ProxyFeedbackRequest> requests, Node node, string controlName, string tooltipText, bool suppressExisting = false) { List <VRInputDevice.VRControl> ids; if (m_Controls.TryGetValue(controlName, out ids)) { foreach (var id in ids) { var request = new ProxyFeedbackRequest { node = node, control = id, priority = 1, tooltipText = tooltipText, suppressExisting = suppressExisting }; this.AddFeedbackRequest(request); requests.Add(request); } } }
public void ProcessInput(ActionMapInput input, ConsumeControlDelegate consumeControl) { var hit = false; foreach (var vacuumable in vacuumables) { var vacuumableTransform = vacuumable.transform; var ray = new Ray(rayOrigin.position, rayOrigin.forward); ray.origin = vacuumableTransform.InverseTransformPoint(ray.origin); ray.direction = vacuumableTransform.InverseTransformDirection(ray.direction); if (vacuumable.vacuumBounds.IntersectRay(ray)) { hit = true; var vacuumInput = (VacuumInput)input; if (vacuumInput.vacuum.wasJustPressed) { var realTime = Time.realtimeSinceStartup; if (UIUtils.IsDoubleClick(realTime - m_LastClickTime)) { Coroutine coroutine; if (m_VacuumingCoroutines.TryGetValue(vacuumableTransform, out coroutine)) { StopCoroutine(coroutine); } m_VacuumingCoroutines[vacuumableTransform] = StartCoroutine(VacuumToViewer(vacuumable)); } m_LastClickTime = realTime; } if (m_Feedback.Count == 0) { foreach (var kvp in m_Controls) { foreach (var id in kvp.Value) { var request = new ProxyFeedbackRequest { control = id, node = node, tooltipText = "Double-tap to summon workspace" }; m_Feedback.Add(request); this.AddFeedbackRequest(request); } } } break; } } if (!hit) { foreach (var request in m_Feedback) { this.RemoveFeedbackRequest(request); } m_Feedback.Clear(); } }