Пример #1
0
    // Update is called once per frame
    void Update()
    {
        // Do a raycast into the world based on the user's
        // head position and orientation.
        var headPosition  = Camera.main.transform.position;
        var gazeDirection = Camera.main.transform.forward;

        RaycastHit hitInfo;

        if (Physics.Raycast(headPosition, gazeDirection, out hitInfo))
        {
            // If the raycast hit a hologram...

            // Display the cursor mesh.
            meshRenderer.enabled = true;
            // Move the cursor to the point where the raycast hit.
            this.transform.position = hitInfo.point;
            // Rotate the cursor to hug the surface of the hologram.
            this.transform.rotation =
                Quaternion.FromToRotation(Vector3.up, hitInfo.normal);

            if (userModeManagerScript.isLearnMode())
            {
                GameObject collidedItem = hitInfo.collider.gameObject;
                if (markedItemsScript.isCurrentLearningItem(collidedItem))
                {
                    RemoveMarker(collidedItem);
                }
                else if (markedItemsScript.isInLearningItems(collidedItem))
                {
                    playAlert();
                }
            }
        }
        else
        {
            // If the raycast did not hit a hologram, hide the cursor mesh.
            meshRenderer.enabled = false;
        }
        timeSincePlayed += Time.deltaTime;
    }