Exemple #1
0
        public bool TryGetValidTooltipRig(ControllerButton button, out TooltipRig rig)
        {
            rig = default(TooltipRig);
            if (!EnumArrayBase <ControllerButton> .StaticIsValidIndex((int)button))
            {
                return(false);
            }

            var model       = VRModule.GetDeviceState(m_viveRole.GetDeviceIndex()).deviceModel;
            var rigSetAsset = (TooltipRigAsset)null;

            if (m_customTooltipRigSet != null)
            {
                rigSetAsset = m_customTooltipRigSet[(int)model];
            }

            if (rigSetAsset != null || TooltipRigAsset.TryGetDefaultAsset(model, out rigSetAsset))
            {
                var entries = rigSetAsset.rigEntries;
                if (entries != null && entries.Count > 0)
                {
                    for (int i = 0, imax = entries.Count; i < imax; ++i)
                    {
                        var entry = entries[i];
                        if (entry.button == button)
                        {
                            rig = entry.tooltipRig;
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
        protected override void OnShowTooltip(ControllerButton button, TooltipRig rig, DefaultTooltipRenderData data, bool wasVisible)
        {
            var prefabClone = CloneOrGetPrefab(button);

            if (prefabClone != null)
            {
                prefabClone.gameObject.SetActive(true);
                prefabClone.ShowRenderData(rig, data);
            }
        }
Exemple #3
0
        public void ShowRenderData(TooltipRig tooltipRig, DefaultTooltipRenderData data)
        {
            lineOrigin.gameObject.SetActive(true);
            lineEnd.gameObject.SetActive(true);
            labelOrigin.gameObject.SetActive(true);

            var start      = tooltipRig.buttonPosition + 0.005f * tooltipRig.buttonNormal;
            var end        = tooltipRig.labelPosition;
            var lineVector = end - start;

            lineOrigin.localPosition  = start;
            lineOrigin.localRotation  = Quaternion.LookRotation(lineVector);
            lineCylinder.localScale   = new Vector3(1f, 1f, lineVector.magnitude);
            lineEnd.localPosition     = end;
            labelOrigin.localPosition = tooltipRig.labelPosition;
            labelOrigin.localRotation = Quaternion.LookRotation(tooltipRig.labelNormal, tooltipRig.labelUp);
            if (labelText != null)
            {
                labelText.text = data.labelText;
            }
            if (labelTextMesh != null)
            {
                labelTextMesh.text = data.labelText;
            }

            switch (tooltipRig.labelAnchor)
            {
            case TextAnchor.UpperLeft:
                labelAnchor.localPosition = new Vector3(labelWidth * 0.5f, -labelHeight * 0.5f, 0f);
                break;

            case TextAnchor.UpperCenter:
                labelAnchor.localPosition = new Vector3(0f, -labelHeight * 0.5f, 0f);
                break;

            case TextAnchor.UpperRight:
                labelAnchor.localPosition = new Vector3(-labelWidth * 0.5f, -labelHeight * 0.5f, 0f);
                break;

            case TextAnchor.MiddleLeft:
                labelAnchor.localPosition = new Vector3(labelWidth * 0.5f, 0f, 0f);
                break;

            case TextAnchor.MiddleCenter:
                labelAnchor.localPosition = new Vector3(0f, 0f, 0f);
                break;

            case TextAnchor.MiddleRight:
                labelAnchor.localPosition = new Vector3(-labelWidth * 0.5f, 0f, 0f);
                break;

            case TextAnchor.LowerLeft:
                labelAnchor.localPosition = new Vector3(labelWidth * 0.5f, labelHeight * 0.5f, 0f);
                break;

            case TextAnchor.LowerCenter:
                labelAnchor.localPosition = new Vector3(0f, labelHeight * 0.5f, 0f);
                break;

            case TextAnchor.LowerRight:
                labelAnchor.localPosition = new Vector3(-labelWidth * 0.5f, labelHeight * 0.5f, 0f);
                break;
            }

            //var start = tooltipRig.buttonPosition + 0.005f * tooltipRig.buttonNormal;
            //var end = tooltipRig.labelPosition - 0.005f * tooltipRig.labelNormal;
            //var lineVector = end - start;
            //var labelForward = -tooltipRig.labelNormal;
            //lineOrigin.localPosition = start;
            //lineOrigin.localRotation = Quaternion.LookRotation(lineVector);
            //lineCylinder.localScale = new Vector3(1f, 1f, lineVector.magnitude);
            //lineEnd.localPosition = end;
            //labelOrigin.localPosition = tooltipRig.labelPosition;
            //labelOrigin.localRotation = Quaternion.LookRotation(labelForward, Vector3.forward);
            //if (labelText != null) { labelText.text = data.labelText; }
            //if (labelTextMesh != null) { labelTextMesh.text = data.labelText; }
        }