Example #1
0
    // Use this for initialization
    void Start()
    {
        m_TrackedObj = GetComponent<SteamVR_TrackedObject>();
        m_TrackedCtl = GetComponent<SteamVR_TrackedController>();
        m_Hand       = GetComponent<NewtonVR.NVRHand>();

        m_TrackedCtl.TriggerClicked += TriggerDown;
        m_TrackedCtl.TriggerUnclicked += TriggerUp;

        m_ColliderList = GetComponentsInChildren<Collider>();
    }
    void Update()
    {
        SteamVR_ControllerManager manager = GetComponent<SteamVR_ControllerManager>();

        if (manager.right.activeInHierarchy)
        {
            TrackedController = manager.right.GetComponent<SteamVR_TrackedController>();
            TrackedObject = manager.right.GetComponent<SteamVR_TrackedObject>();
        }
        else if (manager.left.activeInHierarchy)
        {
            TrackedController = manager.left.GetComponent<SteamVR_TrackedController>();
            TrackedObject = manager.left.GetComponent<SteamVR_TrackedObject>();
        }
        else
        {
            TrackedController = null;
            TrackedObject = null;
        }
    }
Example #3
0
 private void OnEnable()
 {
     _controller = GetComponent <SteamVR_TrackedController>();
     _controller.TriggerClicked += HandleTriggerClicked;
     //_controller.PadClicked += HandlePadClicked;
 }
Example #4
0
 // Use this for initialization
 void Start()
 {
     controller  = this.GetComponent <SteamVR_TrackedController>();
     device      = SteamVR_Controller.Input((int)controller.controllerIndex);
     firstHaptic = false;
 }
Example #5
0
 private void OnEnable()
 {
     controller = transform.parent.GetComponent <SteamVR_TrackedController>();
     controller.TriggerClicked   += HandleTriggerClick;
     controller.TriggerUnclicked += HandleTriggerUnclick;
 }
Example #6
0
 private void Start()
 {
     m_controller = GetComponent <SteamVR_TrackedController>();
 }
 // Use this for initialization
 void Start()
 {
     RealHand          = GameObject.Find(RealHandName);
     VRJoystickTracker = gameObject.GetComponent <SteamVR_TrackedController>();
 }
Example #8
0
    private float m_SavedSpeed = 0;    // Saved player movement speed

    #endregion


    void Awake()
    {
        #region /* Debug Print */
        DebugLogger.Log("[ShowMenu.cs] :: [0] :: Debugging Enabled\r\n");
        DebugLogger.Log("[ShowMenu.cs] :: [1] :: Beginning Initializations...\r\n");
        DebugLogger.Log("[ShowMenu.cs] :: [1.1] :: Looking For Controllers...\r\n");
        #endregion

        if (m_LeftController.activeSelf && !m_RightController.activeSelf)
        {
            m_DeviceLeft = m_LeftController.GetComponent <SteamVR_TrackedController>();

            #region /* Debug Print */
            DebugLogger.Log("[ShowMenu.cs] :: [1.2] :: Left Controller Found\r\n\r\n");
            #endregion
        }
        else if (m_RightController.activeSelf && !m_LeftController.activeSelf)
        {
            m_DeviceRight = m_RightController.GetComponent <SteamVR_TrackedController>();

            #region /* Debug Print */
            DebugLogger.Log("[ShowMenu.cs] :: [1.2] :: Right Controller Found\r\n\r\n");
            #endregion
        }
        else
        {
            m_DeviceLeft  = m_LeftController.GetComponent <SteamVR_TrackedController>();
            m_DeviceRight = m_RightController.GetComponent <SteamVR_TrackedController>();

            #region /* Debug Print */
            DebugLogger.Log("[ShowMenu.cs] :: [1.2] :: Left & Right Controllers Found\r\n\r\n");
            #endregion
        }



        #region /* Debug Print */
        DebugLogger.Log("[ShowMenu.cs] :: [1.3] :: Setting-Up Controller Triggered Events...\r\n");
        #endregion
        // Make sure to handle, all, or one or the other cases

        if (m_DeviceRight != null && m_DeviceLeft == null)
        {
            m_DeviceRight.Gripped += OnGripPress;

            #region /* Debug Print */
            DebugLogger.Log("[ShowMenu.cs] :: [1.4] :: Right Controller Triggers Set\r\n\r\n");
            #endregion
        }
        else if (m_DeviceLeft != null && m_DeviceRight == null)
        {
            m_DeviceLeft.Gripped += OnGripPress;

            #region /* Debug Print */
            DebugLogger.Log("[ShowMenu.cs] :: [1.4] :: Left Controller Triggers Set\r\n\r\n");
            #endregion
        }
        else
        {
            m_DeviceLeft.Gripped  += OnGripPress;
            m_DeviceRight.Gripped += OnGripPress;

            m_DeviceLeft.PadClicked  += OnPadClick;
            m_DeviceRight.PadClicked += OnPadClick;

            #region /* Debug Print */
            DebugLogger.Log("[ShowMenu.cs] :: [1.4] :: Left & Right Triggers Set\r\n\r\n");
            #endregion
        }

        m_MenuItems.Init();
        // start with the menu inactive
        PlayerPrefs.SetString("Type", "Free Calibration");

        #region /* Debug Print */
        DebugLogger.Log("[ShowMenu.cs] :: [1.5] :: Initializations Completed\r\n\r\n");
        #endregion

        gameObject.SetActive(false);
    }
 // Use this for initialization
 void Start()
 {
     VRJoystickTracker = gameObject.GetComponent <SteamVR_TrackedController>();
 }
 private void Awake()
 {
     controller = controllerLeft.GetComponent <SteamVR_TrackedController>();
     controller.TriggerClicked += HandleShoot;
     trackedObj = controllerLeft.GetComponent <SteamVR_TrackedObject>();
 }
Example #11
0
    // Update is called once per frame
    void Update()
    {
        if (!isActive)
        {
            isActive = true;
            this.transform.GetChild(0).gameObject.SetActive(true);
        }

        float dist = 100f;

        SteamVR_TrackedController controller = GetComponent <SteamVR_TrackedController>();

        Ray        raycast = new Ray(transform.position, transform.forward);
        RaycastHit hit;
        bool       bHit = Physics.Raycast(raycast, out hit);

        if (previousContact && previousContact != hit.transform)
        {
            //print("contacto");//se entra en este f cuando se termina el contacto
            PointerEventArgs args = new PointerEventArgs();
            if (controller != null)
            {
                args.controllerIndex = controller.controllerIndex;
            }
            args.distance = 0f;
            args.flags    = 0;
            args.target   = previousContact;
            OnPointerOut(args);
            previousContact = null;
        }
        if (bHit && previousContact != hit.transform)
        {
            print("Contacto");
            PointerEventArgs argsIn = new PointerEventArgs();
            if (controller != null)
            {
                argsIn.controllerIndex = controller.controllerIndex;
            }
            argsIn.distance = hit.distance;
            argsIn.flags    = 0;
            argsIn.target   = hit.transform;
            OnPointerIn(argsIn);
            previousContact = hit.transform;
            //modificaciones propias
            Nodo nodoS = previousContact.GetComponent <Nodo>();
            if (nodoS)
            {
                nodoS.mostrarTexto();
            }
        }
        if (!bHit)
        {
            previousContact = null;
        }
        if (bHit && hit.distance < 100f)
        {
            dist = hit.distance;
        }

        if (controller != null && controller.triggerPressed)
        {
            pointer.transform.localScale = new Vector3(thickness * 5f, thickness * 5f, dist);
        }
        else
        {
            pointer.transform.localScale = new Vector3(thickness, thickness, dist);
        }
        pointer.transform.localPosition = new Vector3(0f, 0f, dist / 2f);
    }
 // Use this for initialization
 void Awake()
 {
     controller = controllerRight.GetComponent <SteamVR_TrackedController>();
     controller.MenuButtonClicked += MenuPressed;
 }
Example #13
0
 // Use this for initialization
 void Start()
 {
     trackcontroller = GetComponent <SteamVR_TrackedController> ();
 }
Example #14
0
 // Use this for initialization
 void Start()
 {
     controller = GetComponent <SteamVR_TrackedController>();
     controller.TriggerClicked += HandleTriggerClicked;
 }
Example #15
0
    // Update is called once per frame
    void Update()
    {
        GameObject lCont = GameObject.Find("Controller (left)");
        GameObject rCont = GameObject.Find("Controller (right)");

        LVRcontroller = lCont.GetComponent <SteamVR_TrackedController>();
        RVRcontroller = rCont.GetComponent <SteamVR_TrackedController>();

        //APPLY GRAVITY
        float drop_height = GameObject.Find("Capsule").transform.position.y;

        if (moveDirection.y > gravity * -1)
        {
            moveDirection.y -= gravity * Time.deltaTime;
        }
        controller.Move(moveDirection * Time.deltaTime);
        var left = transform.TransformDirection(Vector3.left);

        /*if(controller.isGrounded) {
         *      if(Input.GetKeyDown(KeyCode.Space)) {
         *              moveDirection.y = speed;
         *      }
         *      else if(Input.GetKey("w")) {
         *              if(Input.GetKey(KeyCode.LeftShift)) {
         *                      controller.SimpleMove(transform.forward * speed * 2);
         *              }
         *              else {
         *                      controller.SimpleMove(transform.forward * speed);
         *              }
         *      }
         *      else if(Input.GetKey("s")) {
         *              if(Input.GetKey(KeyCode.LeftShift)) {
         *                      controller.SimpleMove(transform.forward * -speed * 2);
         *              }
         *              else {
         *                      controller.SimpleMove(transform.forward * -speed);
         *              }
         *      }
         *      else if(Input.GetKey("a")) {
         *              if(Input.GetKey(KeyCode.LeftShift)) {
         *                      controller.SimpleMove(left * speed * 2);
         *              }
         *              else {
         *                      controller.SimpleMove(left * speed);
         *              }
         *      }
         *      else if(Input.GetKey("d")) {
         *              if(Input.GetKey(KeyCode.LeftShift)) {
         *                      controller.SimpleMove(left * -speed * 2);
         *              }
         *              else {
         *                      controller.SimpleMove(left * -speed);
         *              }
         *      }
         * }
         * else {
         *      if(Input.GetKey("w")) {
         *              Vector3 relative = new Vector3();
         *              relative = transform.TransformDirection(0, 0, 1);
         *              if(Input.GetKey(KeyCode.LeftShift)) {
         *                      controller.Move(relative * Time.deltaTime * speed * 2);
         *              }
         *              else {
         *                      controller.Move(relative * Time.deltaTime * speed);
         *              }
         *      }
         * }*///Commented out some of previous code due to steering implementation replacing it.

        //Project a message to person at computer to deploy parachute and save his life
        if (drop_height <= 2500.00 && !isParachuteDeployed)
        {
            onGuiShow = true;//Displays message
        }
        else
        {
            onGuiShow = false;
            onParachuteDeployedGuiShow = false;
        }

        if (isParachuteDeployed && hasJumped)
        {
            //steer parachute.
            float leftY  = GameObject.Find("Controller (left)").transform.position.y;
            float rightY = GameObject.Find("Controller (right)").transform.position.y;

            float leftRight = leftY - rightY;
            float scale     = Mathf.Abs(leftRight * .5f);
            if (controller.isGrounded)//If you're on the ground, walk around by pressing either pad.
            //Steering implemented with vive headset.
            {
                if (LVRcontroller.padPressed || RVRcontroller.padPressed)
                {
                    GameObject.Find("[CameraRig]").transform.localPosition -= new Vector3(GameObject.Find("Camera (eye)").transform.forward.x * .05f, 0, GameObject.Find("Camera (eye)").transform.forward.z * .05f);
                }
            }
            else
            {
                if (leftRight < 0)
                {
                    //transform around forward's x-axis and forward.
                    GameObject.Find("[CameraRig]").transform.localRotation  = Quaternion.Euler(30f * scale * GameObject.Find("Camera (eye)").transform.forward.x, GameObject.Find("Camera (eye)").transform.forward.y + 300f * scale, 30f * scale * GameObject.Find("Camera (eye)").transform.forward.z);
                    GameObject.Find("[CameraRig]").transform.localPosition += new Vector3(-GameObject.Find("Camera (eye)").transform.forward.x * .2f, 0.0f, -GameObject.Find("Camera (eye)").transform.forward.z * .1f);
                }
                else if (leftRight > 0)
                {
                    GameObject.Find("[CameraRig]").transform.localRotation = Quaternion.Euler(-30f * scale * GameObject.Find("Camera (eye)").transform.forward.x, GameObject.Find("Camera (eye)").transform.forward.y - 300f * scale, -30f * scale * GameObject.Find("Camera (eye)").transform.forward.z);
                    //GameObject.Find("[CameraRig]").transform.Rotate(0f, scale * -300f, 0f);
                    GameObject.Find("[CameraRig]").transform.localPosition += new Vector3(-GameObject.Find("Camera (eye)").transform.forward.x * .2f, 0.0f, -GameObject.Find("Camera (eye)").transform.forward.z * .1f);
                }
            }
        }

        if (LVRcontroller.padPressed || RVRcontroller.padPressed)
        {
            //Debug.Log("Pad Clicked");[email protected]
            if (!hasJumped)//JUMP OUT OF HELICOPTER!!! (Press pad on vive controller)
            {
                GameObject.Find("[CameraRig]").transform.Rotate(90.0f, 0.0f, 0.0f);
                hasJumped = true;
                gravity   = 100;
            }
        }

        if (hasJumped && (LVRcontroller.triggerPressed || RVRcontroller.triggerPressed))
        {
            //Debug.Log("Trigger Clicked");
            if (!isParachuteDeployed)//DEPLOY PARACHUTE!!! (Press trigger on vive controller)
            {
                moveDirection = Vector3.zero;
                gravity       = 15;
                GameObject.Find("[CameraRig]").transform.Rotate(90.0f, 0.0f, 0.0f);
                onGuiShow           = false;
                isParachuteDeployed = true;
            }
            else
            {
                onGuiShow = false;
                onParachuteDeployedGuiShow = true;
            }
        }
    }
Example #16
0
    void Start()
    {
        controller = GetComponent <SteamVR_TrackedController>();

        controller.TriggerClicked += OnTriggerClicked; // Also check the rest of the events.
    }
Example #17
0
    /*!
     * \brief Check to see whether a furniture object has been clone or from catalog menu
     * \details loads menu prefab, allows object
     */
    void Start()
    {
        contextMenuPrefab = Resources.Load("UI Prefabs/ContextMenu") as GameObject;
        id = GetComponent <ObjectCategory>().objectID;


        List <Material> materials    = gameObject.GetComponent <MeshRenderer>().materials.Cast <Material>().ToList();
        List <Material> newMaterials = gameObject.GetComponent <MeshRenderer>().materials.Cast <Material>().ToList();

        if (!isClone)   //If it is a clone, material arrays are being set be equal to the cloned object to prevent object from always being highlighted
        {
            newMaterials.Add(highlightMaterial);
        }
        else
        {
            materials.RemoveAt(materials.Count - 1);
            pointer.PointerIn          += OnHover;
            pointer.PointerOut         += OffHover;
            controllerInput.PadClicked += OnPadClicked;
        }

        materialArrayWithHighlight = newMaterials.ToArray();
        materialArray = materials.ToArray();

        if (isClone)
        {
            pointer.PointerIn          += OnHover;
            pointer.PointerOut         += OffHover;
            controllerInput.PadClicked += OnPadClicked;
            //isClone = false;
        }
        GameObject controllerObject = GameObject.FindGameObjectWithTag("Right Controller");

        if (controller == null)
        {
            controller = controllerObject.GetComponent <SteamVR_TrackedObject>();
        }

        if (controllerInput == null)
        {
            controllerInput             = controllerObject.GetComponent <SteamVR_TrackedController>();
            controllerInput.PadClicked += OnPadClicked;
        }

        if (pointer == null)
        {
            pointer             = controllerObject.GetComponent <SteamVR_LaserPointer>();
            pointer.PointerIn  += OnHover;
            pointer.PointerOut += OffHover;
        }
        ObjectIdentifier objectIdentifier = gameObject.GetComponent <ObjectIdentifier>();

        objectIdentifier.id = gameObject.GetComponent <ObjectCategory>().objectID.ToString();
        objectIdentifier.componentSaveMode = ObjectIdentifier.ComponentSaveMode.All;

        try {
            GetComponent <MeshRenderer>().sharedMaterial = new Material(GetComponent <MeshRenderer>().sharedMaterial);
        }
        catch {
            MeshRenderer[] renders = GetComponentsInChildren <MeshRenderer>();
            foreach (MeshRenderer renderer in renders)
            {
                renderer.sharedMaterial = new Material(renderer.sharedMaterial);
            }
        }

        UnityEditor.PrefabUtility.DisconnectPrefabInstance(this);
    }
Example #18
0
 private void OnEnable()
 {
     device = GetComponent <SteamVR_TrackedController>();
     device.TriggerClicked   += HandleTriggerClicked;
     device.TriggerUnclicked += HandleTriggerUnclicked;
 }
Example #19
0
 void Start()
 {
     controller = controllerRight.GetComponent <SteamVR_TrackedController>();
     obj        = controllerRight.GetComponent <SteamVR_TrackedObject>();
 }
Example #20
0
 // Use this for initialization
 void Start()
 {
     //StartCoroutine(Leave());
     right = GetComponent <SteamVR_TrackedController>();
     left  = otherHand.GetComponent <SteamVR_TrackedController>();
 }
Example #21
0
    // Update is called once per frame
    void Update()
    {
        // finds all of the controllers in contact with the lever that have the trigger pressed
        int     numActive     = 0;
        Vector3 controllerPos = Vector3.zero;

        foreach (Transform t in touchingControllers)
        {
            SteamVR_TrackedController controller = t.GetComponent <SteamVR_TrackedController>();
            if (controller == null)
            {
                Debug.LogWarning("No TrackedController script found!");
            }
            if (controller != null && controller.triggerPressed)
            {
                controllerPos += controller.transform.position;
                numActive++;
            }
        }
        //Debug.Log("Controller Count: " + touchingControllers.Count);

        if (numActive > 0 && AcceptingInput)
        {
            controllerPos /= numActive; // gets average position of touching controllers with pulled trigger
            Vector3 centralAnchor    = (ForwardAnchor.position + RearAnchor.position) / 2;
            Vector3 forwardDirection = (ForwardAnchor.position - RearAnchor.position).normalized;

            //calculates where the controller should be moved to (nearest point to average controller position on line between forward and rear anchors)
            float nextOffset = Mathf.Clamp(Vector3.Dot(controllerPos - centralAnchor, forwardDirection) / maxOffsetDistance, MIN_OFFSET, MAX_OFFSET);

            // vibrates controller if you pass a vibration point on the lever
            bool vibrateController = false;
            if (nextOffset > STOP_MAX || currentOffset > STOP_MAX)
            {
                float distInc = (MAX_OFFSET - STOP_MAX) / NUM_VIB;
                float oldInc  = Mathf.Floor((currentOffset - STOP_MAX) / distInc);
                float newInc  = Mathf.Floor((nextOffset - STOP_MAX) / distInc);
                vibrateController = (oldInc != newInc);
            }
            else if (nextOffset < STOP_MIN || currentOffset < STOP_MIN)
            {
                float distInc = (STOP_MIN - MIN_OFFSET) / NUM_VIB;
                float oldInc  = Mathf.Floor((STOP_MIN - currentOffset) / distInc);
                float newInc  = Mathf.Floor((STOP_MIN - nextOffset) / distInc);
                vibrateController = (oldInc != newInc);
            }

            //updates the lever's positon
            transform.position = Vector3.Lerp(RearAnchor.position, ForwardAnchor.position, nextOffset / 2.0f + 0.5f);
            currentOffset      = nextOffset;

            //vibrates the controller if a vibration point is passed
            if (vibrateController)
            {
                //Debug.Log("Should vibrate here");
                foreach (Transform controller in touchingControllers)
                {
                    SteamVR_Controller.Input((int)controller.GetComponent <SteamVR_TrackedController>().controllerIndex).TriggerHapticPulse(VIB_INTENSITY);
                }
            }
        }

        // updates the speed of the ship if there's a valid orbitManager
        if (orbitManager != null)
        {
            //calculates the desired speed from the lever's positon
            if (currentOffset > STOP_MAX && currentOffset <= MAX_OFFSET + FP_TOLERANCE)
            {
                orbitManager.LinearSpeed = (currentOffset - STOP_MAX) / (MAX_OFFSET - STOP_MAX) * MAX_SPEED;
            }
            else if (currentOffset < STOP_MIN && currentOffset >= MIN_OFFSET - FP_TOLERANCE)
            {
                orbitManager.LinearSpeed = (currentOffset - STOP_MIN) / (STOP_MIN - MIN_OFFSET) * MAX_SPEED;
            }
            else
            {
                orbitManager.LinearSpeed = 0.0f;

                //moves controller to exact center if you let go of it the zone considered 'stop' or '0 speed'
                if (numActive <= 0 && AcceptingInput && Mathf.Abs(currentOffset - (STOP_MAX + STOP_MIN) / 2.0f) > FP_TOLERANCE)
                {
                    SetThrottle(0.0f);
                }
            }

            //updates the speed label
            SetLabel(orbitManager.LinearSpeed);
        }
    }
Example #22
0
 private void OnEnable()
 {
     _controller = GetComponent <SteamVR_TrackedController>();
     _controller.TriggerClicked += Place;
 }
Example #23
0
 void Start()
 {
     controller = GetComponent <SteamVR_TrackedController>();
     controller.TriggerClicked   += Controller_TriggerClicked;
     controller.TriggerUnclicked += Controller_TriggerUnclicked;;
 }
Example #24
0
 void Start()
 {
     device                 = GetComponent <SteamVR_TrackedController>();
     laserPointedObj        = GetComponent <SteamVR_ControllerPointerEvents_ObjectNamePopUp>();
     device.TriggerClicked += Trigger;
 }
Example #25
0
 private void OnEnable()
 {
     controller             = GetComponent <SteamVR_TrackedController>();
     controller.PadClicked += PadClicked;
 }
Example #26
0
 private void OnEnable()
 {
     controller = GetComponent <SteamVR_TrackedController>();
     body       = transform.GetComponentInParent <Rigidbody>();;
 }
Example #27
0
 void Start()
 {
     controller      = GetComponent <SteamVR_TrackedController>();
     previousTouched = false;
 }
Example #28
0
    // Update is called once per frame
    void Update()
    {
        if (laserActive)
        {
            if (!isActive)
            {
                isActive = true;
                this.transform.GetChild(0).gameObject.SetActive(true);
            }

            float dist = 100f;

            SteamVR_TrackedController controller = GetComponent <SteamVR_TrackedController>();

            SteamVR_TrackedObject trackedObj = GetComponent <SteamVR_TrackedObject>();
            var device = SteamVR_Controller.Input((int)trackedObj.index);

            Ray        raycast = new Ray(transform.position, transform.forward);
            RaycastHit hit;
            bool       bHit = Physics.Raycast(raycast, out hit);

            //Tutorial button checks
            if (GameObject.Find("Tutorial Manager").GetComponent <TutorialManager>().tutorialState == 9)
            {
                if (Physics.Raycast(transform.position, transform.forward, out hit) && hit.transform.gameObject == continueButton)
                {
                    Debug.Log("ContinueButton");
                    hit.transform.gameObject.GetComponent <SpriteRenderer>().sprite = darkSprite;
                    if (device.GetTouchUp(SteamVR_Controller.ButtonMask.Trigger))
                    {
                        SceneManager.LoadScene("VRScene");
                    }
                }
                else if (Physics.Raycast(transform.position, transform.forward, out hit) && hit.transform.gameObject == resetButton)
                {
                    Debug.Log("ResetButton");
                    hit.transform.gameObject.GetComponent <SpriteRenderer>().sprite = darkSprite;
                    if (device.GetTouchUp(SteamVR_Controller.ButtonMask.Trigger))
                    {
                        continueButton.SetActive(false);
                        resetButton.SetActive(false);
                        SceneManager.LoadScene("TutorialScene");
                    }
                }
                else
                {
                    continueButton.gameObject.GetComponent <SpriteRenderer>().sprite = lightSprite;
                    resetButton.gameObject.GetComponent <SpriteRenderer>().sprite    = lightSprite;
                }
            }

            if (previousContact && previousContact != hit.transform)
            {
                PointerEventArgs args = new PointerEventArgs();
                if (controller != null)
                {
                    args.controllerIndex = controller.controllerIndex;
                }
                args.distance = 0f;
                args.flags    = 0;
                args.target   = previousContact;
                OnPointerOut(args);
                previousContact = null;
            }
            if (bHit && previousContact != hit.transform)
            {
                PointerEventArgs argsIn = new PointerEventArgs();
                if (controller != null)
                {
                    argsIn.controllerIndex = controller.controllerIndex;
                }
                argsIn.distance = hit.distance;
                argsIn.flags    = 0;
                argsIn.target   = hit.transform;
                OnPointerIn(argsIn);
                previousContact = hit.transform;
            }
            if (!bHit)
            {
                previousContact = null;
            }
            if (bHit && hit.distance < 100f)
            {
                dist = hit.distance;
            }

            if (controller != null && controller.triggerPressed)
            {
                pointer.transform.localScale = new Vector3(thickness * 5f, thickness * 5f, dist);
            }
            else
            {
                pointer.transform.localScale = new Vector3(thickness, thickness, dist);
            }
            pointer.transform.localPosition = new Vector3(0f, 0f, dist / 2f);
        }
    }
Example #29
0
    // Update is called once per frame
    void Update()
    {
        /*
         * if(!active)
         * {
         *  pointer.transform.localScale = Vector3.zero;
         *  return;
         * }
         */

        if (!isActive)
        {
            isActive = true;
            this.transform.GetChild(0).gameObject.SetActive(true);
        }

        float dist = 100f;

        SteamVR_TrackedController controller = GetComponent <SteamVR_TrackedController>();

        Ray        raycast = new Ray(transform.position, transform.forward);
        RaycastHit hit;
        bool       bHit = Physics.Raycast(raycast, out hit);

        if (!bHit || hit.collider.gameObject.tag != "VRUI")
        {
            pointer.transform.localScale = Vector3.zero;
            return;
        }

        if (previousContact && previousContact != hit.transform)
        {
            PointerEventArgs args = new PointerEventArgs();
            if (controller != null)
            {
                args.controllerIndex = controller.controllerIndex;
            }
            args.distance = 0f;
            args.flags    = 0;
            args.target   = previousContact;
            OnPointerOut(args);
            previousContact = null;
        }
        if (bHit && previousContact != hit.transform)
        {
            PointerEventArgs argsIn = new PointerEventArgs();
            if (controller != null)
            {
                argsIn.controllerIndex = controller.controllerIndex;
            }
            argsIn.distance = hit.distance;
            argsIn.flags    = 0;
            argsIn.target   = hit.transform;
            OnPointerIn(argsIn);
            previousContact = hit.transform;
        }
        if (!bHit)
        {
            previousContact = null;
        }
        if (bHit && hit.distance < 100f)
        {
            dist = hit.distance;
        }

        if (controller != null && controller.triggerPressed)
        {
            pointer.transform.localScale = new Vector3(thickness * 5f, thickness * 5f, dist);
        }
        else
        {
            pointer.transform.localScale = new Vector3(thickness, thickness, dist);
        }
        pointer.transform.localPosition = new Vector3(0f, 0f, dist / 2f);
    }
Example #30
0
 void ChangeColor(SteamVR_TrackedController sender)
 {
     GetComponent <MeshRenderer>().material.color = Random.ColorHSV();
 }
Example #31
0
 // Use this for initialization
 void Start()
 {
     vrgrabbing        = GetComponentInChildren <VRGrabbing> ();
     trackedcontroller = GetComponent <SteamVR_TrackedController> ();
 }
Example #32
0
    // Update is called once per frame
    void Update()
    {
        if (active != isActive)
        {
            isActive = active;
            pointer?.SetActive(isActive);
        }
        if (!isActive)
        {
            return;
        }

        float dist = 100f;

        SteamVR_TrackedController controller = GetComponent <SteamVR_TrackedController>();

        Ray        raycast = new Ray(transform.position, transform.forward);
        RaycastHit hit;
        bool       bHit = Physics.Raycast(raycast, out hit);

        if (previousContact && previousContact != hit.transform)
        {
            PointerEventArgs args = new PointerEventArgs();
            if (controller != null)
            {
                args.controllerIndex = controller.controllerIndex;
            }
            args.distance = 0f;
            args.flags    = 0;
            args.target   = previousContact;
            OnPointerOut(args);
            previousContact = null;
        }
        if (bHit && previousContact != hit.transform)
        {
            PointerEventArgs argsIn = new PointerEventArgs();

            if (controller != null)
            {
                argsIn.controllerIndex = controller.controllerIndex;
            }
            argsIn.distance = hit.distance;
            argsIn.flags    = 0;
            argsIn.target   = hit.transform;
            if (argsIn.target.tag == "nonMoveableVertex")
            {
                return;
            }
            OnPointerIn(argsIn);
            previousContact = hit.transform;
        }
        if (!bHit)
        {
            previousContact = null;
        }
        if (bHit && hit.distance < 100f)
        {
            dist = hit.distance;
        }

        if (controller != null && controller.triggerPressed)
        {
            pointer.transform.localScale = new Vector3(thickness * 5f, thickness * 5f, dist);
        }
        else
        {
            pointer.transform.localScale = new Vector3(thickness, thickness, dist);
        }
        pointer.transform.localPosition = new Vector3(0f, 0f, dist / 2f);
    }