Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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);
                }
            }
        }
Exemplo n.º 3
0
        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);
                }
            }
        }
Exemplo n.º 4
0
        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();
            }
        }