Beispiel #1
0
    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;
        }
    }