Exemple #1
0
 public void HideTooltip(TooltipControllers controller, TooltipButtons button)
 {
     SetTooltip("",
                controller,
                button,
                false);
 }
Exemple #2
0
        private Transform  GetButtonTransform(TooltipControllers controller, TooltipButtons button)
        {
            ControllerInteraction.ControllerElements findElement;

            TooltipTransformAdapterBase adapter = null;

            Transform returnedTransform = null;

            if (controller == TooltipControllers.Left)
            {
                adapter = _leftTooltipAdapter;
            }
            else if (controller == TooltipControllers.Right)
            {
                adapter = _rightTooltipAdapter;
            }

            if (!adapter)
            {
                return(null);
            }


            switch (button)
            {
            case TooltipButtons.Trigger:
                returnedTransform = adapter.GetButtonTransform(ControllerInteraction.ControllerElements.Trigger);
                break;

            case TooltipButtons.Grip:
                returnedTransform = adapter.GetButtonTransform(ControllerInteraction.ControllerElements.GripLeft);
                break;

            case TooltipButtons.Touchpad:
                returnedTransform = adapter.GetButtonTransform(ControllerInteraction.ControllerElements.Touchpad);
                break;

            case TooltipButtons.ButtonOne:
                returnedTransform = adapter.GetButtonTransform(ControllerInteraction.ControllerElements.ButtonOne);
                break;

            case TooltipButtons.ButtonTwo:
                returnedTransform = adapter.GetButtonTransform(ControllerInteraction.ControllerElements.ButtonTwo);
                break;

            case TooltipButtons.StartMenu:
                returnedTransform = adapter.GetButtonTransform(ControllerInteraction.ControllerElements.StartMenu);
                break;

            default:
                returnedTransform = adapter.GetButtonTransform(ControllerInteraction.ControllerElements.Touchpad);
                break;
            }

            return(returnedTransform);
        }
Exemple #3
0
 public void SetTooltip(
     string text,
     TooltipControllers controller,
     TooltipButtons button,
     bool buttonGlow,
     bool vibration = true)
 {
     StartCoroutine(TooltipCoroutine(text,
                                     controller,
                                     button,
                                     buttonGlow,
                                     vibration));
 }
Exemple #4
0
        public Transform GetTooltipInstantiationTransform(TooltipControllers controller, TooltipButtons button)
        {
            Transform tooltipTransform;

            if (controller == TooltipControllers.Left)
            {
                tooltipTransform = LeftControllerEvents.transform.Find("TooltipPositions");
            }
            else
            {
                tooltipTransform = RightControllerEvents.transform.Find("TooltipPositions");
            }

            switch (button)
            {
            case TooltipButtons.Trigger:
                tooltipTransform = tooltipTransform.Find("Trigger");

                break;

            case TooltipButtons.Grip:
                tooltipTransform = tooltipTransform.Find("Grip");

                break;

            case TooltipButtons.Touchpad:
                tooltipTransform = tooltipTransform.Find("Touchpad");

                break;

            case TooltipButtons.ButtonOne:
                tooltipTransform = tooltipTransform.Find("ButtonOne");

                break;

            case TooltipButtons.ButtonTwo:
                tooltipTransform = tooltipTransform.Find("ButtonTwo");

                break;

            case TooltipButtons.StartMenu:
                tooltipTransform = tooltipTransform.Find("StartMenu");

                break;
            }

            return(tooltipTransform);
        }
Exemple #5
0
 private IEnumerator TooltipCoroutine(
     string text,
     TooltipControllers controller,
     TooltipButtons button,
     bool buttonGlow,
     bool vibration = true)
 {
     while (!UpdateTooltip(text,
                           controller,
                           button,
                           buttonGlow,
                           vibration))
     {
         yield return(new WaitForEndOfFrame());
     }
 }
Exemple #6
0
        public void Vibrate(
            TooltipControllers controller,
            float strength = 0.05f,
            float duration = 0.1f,
            float interval = 0.005f)
        {
            if (controller == TooltipControllers.Left || controller == TooltipControllers.Both)
            {
                var hand = InputAdapter.Instance.PlayerController.Nodes.LeftHand;

                hand.Controller.TriggerHapticPulse(strength, duration, interval);
            }

            if (controller == TooltipControllers.Right || controller == TooltipControllers.Both)
            {
                var hand = InputAdapter.Instance.PlayerController.Nodes.RightHand;

                hand.Controller.TriggerHapticPulse(strength, duration, interval);
            }
        }
Exemple #7
0
        private bool UpdateTooltip(
            string text,
            TooltipControllers controller,
            TooltipButtons button,
            bool buttonGlow,
            bool vibration = true)
        {
            if ((controller == TooltipControllers.Left && !_leftControllerReady) ||
                (controller == TooltipControllers.Right && !_rightControllerReady))
            {
                return(false);
            }

            GameObject tooltipObject;
            Tooltip    tooltip;

            Transform       buttonAttachTransform = null;
            HighlightEffect highlight             = null;


            if ((controller == TooltipControllers.Left && !_tooltipObjectsLeft.ContainsKey(button)) ||
                (controller == TooltipControllers.Right && !_tooltipObjectsRight.ContainsKey(button)))
            {
                buttonAttachTransform = GetButtonTransform(controller, button);

                if (buttonAttachTransform == null)
                {
                    return(false);
                }

                tooltipObject = Instantiate(TooltipTemplate, GetTooltipInstantiationTransform(controller, button));

                if (controller == TooltipControllers.Left)
                {
                    _tooltipObjectsLeft.Add(button, tooltipObject);
                }
                else
                {
                    _tooltipObjectsRight.Add(button, tooltipObject);
                }

                tooltip = InputAdapter.Instance.Tooltip.GetFromChildren(tooltipObject, true);

                tooltip.drawLineTo = buttonAttachTransform;

                buttonAttachTransform.parent.gameObject.AddComponent <HighlightEffect>();

                highlight = buttonAttachTransform.GetComponentInParent <HighlightEffect>();

                SetupHighlighter(ref highlight);

                highlight.enabled = false;
            }
            else
            {
                if (controller == TooltipControllers.Left)
                {
                    tooltipObject = _tooltipObjectsLeft[button];
                }
                else
                {
                    tooltipObject = _tooltipObjectsRight[button];
                }

                tooltip = InputAdapter.Instance.Tooltip.GetFromChildren(tooltipObject, true);
            }

            tooltip.displayText = text;

            tooltip.ResetTooltip();

            if (highlight == null)
            {
                buttonAttachTransform = GetButtonTransform(controller, button);
                highlight             = buttonAttachTransform.GetComponentInParent <HighlightEffect>();
                if (highlight != null)
                {
                    highlight.enabled = false;
                }
            }

            if (text.Trim().Length != 0 || buttonGlow)
            {
                tooltipObject.SetActive(true);

                if (highlight != null)
                {
                    highlight.enabled = buttonGlow;
                }

                if (vibration)
                {
                    Vibrate(controller);
                }
            }
            else
            {
                tooltipObject.SetActive(false);
            }


            return(true);
        }