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); } }
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; } }