public bool bDoComputation = false; // Debugging. private void Awake() { textureLoader = FindObjectOfType <CTextureLoader_Layers>(); evalSimple = FindObjectOfType <EvaluateSimple>(); UI = FindObjectOfType <CUIManager>(); button = FindObjectOfType <VRTrigger>(); pointAtManager = FindObjectOfType <CPointAtManager>(); }
// Update is called once per frame void Update() { //Debug.DrawLine(LeftHand.position, LeftHand.position + LeftHand.up*10); //Debug.DrawLine(RightHand.position, RightHand.position + RightHand.up * 10); bIsSelecting = (OVRInput.Get(OVRInput.Button.One) || OVRInput.Get(OVRInput.Button.Three)); //if (layerManager.isComputing) bIsSelecting = false; if (bIsSelecting) { lineRenderer.enabled = true; RaycastHit hit; // Does the ray intersect any objects excluding the player layer if (Physics.Raycast(RightHand.position, RightHand.forward, out hit, Mathf.Infinity, layerMask)) { bUsingRight = true; lineRenderer.SetPosition(0, RightHand.position); lineRenderer.SetPosition(1, hit.point); VRTrigger trigger = hit.collider.gameObject.GetComponent <VRTrigger>(); if (trigger) { trigger.StartCompute(); return; } Debug.DrawRay(RightHand.position, RightHand.forward * hit.distance, Color.yellow); MoveHighlight(hit.transform, hit); } else if (Physics.Raycast(LeftHand.position, LeftHand.forward, out hit, Mathf.Infinity, layerMask)) { bUsingRight = false; lineRenderer.SetPosition(0, LeftHand.position); lineRenderer.SetPosition(1, hit.point); VRTrigger trigger = hit.collider.gameObject.GetComponent <VRTrigger>(); if (trigger) { trigger.StartCompute(); return; } Debug.DrawRay(LeftHand.position, LeftHand.forward * hit.distance, Color.yellow); MoveHighlight(hit.transform, hit); } else { if (bUsingRight) { lineRenderer.SetPosition(0, RightHand.position); lineRenderer.SetPosition(1, RightHand.position + RightHand.forward * length); } else { lineRenderer.SetPosition(0, LeftHand.position); lineRenderer.SetPosition(1, LeftHand.position + LeftHand.forward * length); } } } else { lineRenderer.enabled = false; } }