예제 #1
0
        void Update()
        {
            for (int i = 0; i < lines.Count; i++)
            {
                if (Time.time > lines[i].stopTime)
                {
                    Destroy(lines[i].material);
                    lines.RemoveAt(i);
                    continue;
                }
                Graphics.DrawMesh(mesh, lines[i].matrix, lines[i].material, 0);
            }

            //if(VRInput.GetDevice("ViveLeft").GetButtonDown("Grip")) VRDebug.ToggleConsole();
            if (VRInput.HasDevice("ViveLeft"))
            {
                if (VRInput.GetDevice("ViveLeft").GetButtonDown("Grip") && VRInput.GetDevice("ViveLeft").GetButton("Menu"))
                {
                    VRDebug.ToggleConsole(false);
                }
                else if (VRInput.GetDevice("ViveLeft").GetButtonDown("Menu") && VRInput.GetDevice("ViveLeft").GetButton("Grip"))
                {
                    VRDebug.ToggleConsole(true);
                }
            }
        }
        void Update()
        {
            if (!VRInput.GetDevice("ViveRight").isTracked)
            {
                return;
            }

            RaycastHit tempHit;

            if (background.Raycast(new Ray(VRInput.GetDevice("ViveRight").position, VRInput.GetDevice("ViveRight").forward), out tempHit, Mathf.Infinity))
            {
                VRDebug.DrawLine(VRInput.GetDevice("ViveRight").position, tempHit.point, Color.black, true, 0.0015f);
            }
        }
예제 #3
0
        void DoRaycast()
        {
            RaycastHit      hit;
            ConsoleCollider hitCollider = colliders.GetCollider(out hit);

            switch (hitCollider)
            {
            case ConsoleCollider.MainWindow:
                //if(!ViveInput.Right.Buttons.Trigger.Equals(ButtonState.Pressed)) break;
                //float yValue = colliders.colliders[0].transform.InverseTransformPoint(hit.point).y;
                float yParam = VRInput.GetDevice("ViveLeft").GetAxis("TouchpadY");
                float sign   = Mathf.Sign(yParam);
                yParam  = Mathf.Abs(yParam);
                yParam *= 1.42857f;
                yParam -= 0.42857f;
                yParam  = Mathf.Clamp01(yParam);
                yParam *= yParam;
                yParam *= sign;

                if (Mathf.Abs(yParam) < 0.05f)
                {
                    yParam = 0f;
                }

                mainStartIndex -= yParam * mainScrollSpeed * Time.deltaTime;
                mainStartIndex  = Mathf.Clamp(mainStartIndex, 0f, Mathf.Max(0f, getNumToShow() - 13));
                atBottom        = (mainStartIndex >= Mathf.Max(0f, getNumToShow() - 13) - 1f);

                if (VRInput.GetDevice("ViveLeft").GetButtonDown("Trigger"))
                {
                    int indexOfHit = 12 - (int)Mathf.Max(0f, Mathf.RoundToInt((colliders.colliders[0].transform.InverseTransformPoint(hit.point).y + 0.5f) * 13f - 0.7f));
                    //Debug.Log("index of hit: " + indexOfHit);
                    indexOfHit = Mathf.RoundToInt(indexOfHit + mainStartIndex);
                    if (selectedMessage != null)
                    {
                        selectedMessage.SetColor(colorA);
                        selectedMessage.SetMessageColor(Color.black);
                        selectedMessage = null;
                    }

                    if (collapse)
                    {
                        if (indexOfHit < collapsedLogMessages.Count)
                        {
                            selectedMessage = collapsedLogMessages[indexOfHit];
                            selectedMessage.SetColor(selectedColor);
                            selectedMessage.SetMessageColor(Color.white);
                            selectedText.text = selectedMessage.log.message + "\n" + selectedMessage.log.stackTrace;
                            selectedOffset    = 0f;
                        }
                    }
                    else
                    {
                        if (indexOfHit < logMessages.Count)
                        {
                            selectedMessage = logMessages[indexOfHit];
                            selectedMessage.SetColor(selectedColor);
                            selectedMessage.SetMessageColor(Color.white);
                            selectedText.text = selectedMessage.log.message + "\n" + selectedMessage.log.stackTrace;
                            selectedOffset    = 0f;
                        }
                    }
                }
                break;

            case ConsoleCollider.SubWindow:
                yParam  = VRInput.GetDevice("ViveLeft").GetAxis("TouchpadY");
                sign    = Mathf.Sign(yParam);
                yParam  = Mathf.Abs(yParam);
                yParam *= 1.42857f;
                yParam -= 0.42857f;
                yParam  = Mathf.Clamp01(yParam);
                yParam *= yParam;
                yParam *= sign;

                if (Mathf.Abs(yParam) < 0.05f)
                {
                    yParam = 0f;
                }


                selectedOffset -= yParam * mainScrollSpeed * 20f * Time.deltaTime;
                selectedOffset  = Mathf.Clamp(selectedOffset, 0f, Mathf.Max(0f, selectedText.preferredHeight - 210f));

                //if(Time.frameCount % 30 == 0) Debug.Log("selectedText.preferredHeight: " + selectedText.preferredHeight + "\nselectedOffset: " + selectedOffset + "\nyParam: " + yParam);
                break;

            case ConsoleCollider.ClearButton:
                if (VRInput.GetDevice("ViveRight").GetButtonDown("Trigger"))
                {
                    for (int i = 0; i < logMessages.Count; i++)
                    {
                        Destroy(logMessages[i].gameObject);
                    }
                    for (int i = 0; i < collapsedLogMessages.Count; i++)
                    {
                        Destroy(collapsedLogMessages[i].gameObject);
                    }
                    logMessages.Clear();
                    collapsedLogMessages.Clear();
                    mainStartIndex = 0;
                    VRDebug.ClearConsole();
                }
                break;

            case ConsoleCollider.CollapseButton:
                if (VRInput.GetDevice("ViveRight").GetButtonDown("Trigger"))
                {
                    collapse = !collapse;
                    CollapseToggle.SetOn(collapse);
                    if (collapse)
                    {
                        for (int i = 0; i < logMessages.Count; i++)
                        {
                            logMessages[i].gameObject.SetActive(false);
                        }
                        for (int i = 0; i < collapsedLogMessages.Count; i++)
                        {
                            collapsedLogMessages[i].gameObject.SetActive(true);
                        }
                    }
                    else
                    {
                        for (int i = 0; i < collapsedLogMessages.Count; i++)
                        {
                            collapsedLogMessages[i].gameObject.SetActive(false);
                        }
                        for (int i = 0; i < logMessages.Count; i++)
                        {
                            logMessages[i].gameObject.SetActive(true);
                        }
                    }
                }
                break;

            case ConsoleCollider.StickToControllerButton:
                if (VRInput.GetDevice("ViveRight").GetButtonDown("Trigger"))
                {
                    GetComponent <FollowTransform>().enabled = !GetComponent <FollowTransform>().enabled;
                    StickToControllerToggle.SetOn(GetComponent <FollowTransform>().enabled);
                }
                break;

            case ConsoleCollider.LogToggleButton:
                if (VRInput.GetDevice("ViveRight").GetButtonDown("Trigger"))
                {
                    LogToggle.Toggle();
                }
                break;

            case ConsoleCollider.WarningToggleButton:
                if (VRInput.GetDevice("ViveRight").GetButtonDown("Trigger"))
                {
                    WarningToggle.Toggle();
                }
                break;

            case ConsoleCollider.ErrorToggleButton:
                if (VRInput.GetDevice("ViveRight").GetButtonDown("Trigger"))
                {
                    ErrorToggle.Toggle();
                }
                break;
            }
        }