Example #1
0
    /// <summary>
    /// Logic for when a raycast line collides with a collider and and the input button is pressed
    /// </summary>
    void RayCastInput()
    {
        RaycastHit hit;

        if (Physics.Raycast(this.transform.position, this.transform.forward, out hit, raycastDistance))
        {
            Debug.Log(hit.transform.name);

            ResumePlayback resumePlayback = hit.transform.GetComponent <ResumePlayback>();
            PausePlayback  pausePlayback  = hit.transform.GetComponent <PausePlayback>();
            PlaylistScript playlistScript = hit.transform.GetComponent <PlaylistScript>();
            LeftHandUI     leftHandUI     = hit.transform.GetComponent <LeftHandUI>();

            if (hit.transform.gameObject.tag == "key")
            {
                Text text = hit.transform.gameObject.GetComponentInChildren <Text>();

                keyboardManagerScript.GenerateInput(text.text);
            }

            if (resumePlayback != null)
            {
                resumePlayback.ResumePlaybackFunction();
            }
            else if (leftHandUI != null)
            {
                leftHandUI.OnRayCastHit();
            }
            else if (pausePlayback != null)
            {
                pausePlayback.PausePlaybackFunction();
            }
            else if (playlistScript != null)
            {
                if (playOnClick)
                {
                    playlistScript.PlaySomething();
                }

                if (GameObject.FindWithTag("vinyl") != null)
                {
                    Destroy(GameObject.FindWithTag("vinyl"));
                }

                if (GameObject.FindWithTag("followCube") != null)
                {
                    Destroy(GameObject.FindWithTag("followCube"));
                }

                InstansiateVinylWorking(hit, playlistScript);

                Debug.Log("Spawning Vinyl");
            }
        }
    }
Example #2
0
    void RayCast()
    {
        RaycastHit hit;

        if (Physics.Raycast(this.transform.position, this.transform.forward, out hit, raycastDistance))
        {
            lineRenderer.SetPosition(1, hit.point);

            pointerImage.transform.position   = hit.point;
            pointerImage.material.renderQueue = 4000;

            if (leftHandUIHit != null)
            {
                leftHandUIHit.OnHoverExit();
            }

            //11 is hand UI layer
            if (hit.collider.gameObject.layer == 11)
            {
                pointerImage.transform.localScale = pointerUIScale;

                LeftHandUI leftHandUI = hit.transform.GetComponent <LeftHandUI>();


                if (leftHandUI != null)
                {
                    leftHandUIHit = leftHandUI;
                    leftHandUI.OnHover();
                }
            }
            //5 is UI layer
            else if (hit.collider.gameObject.layer == 5)
            {
                pointerImage.transform.localScale = pointerWorldScale;
                pointerImage.transform.position   = hit.point - pointerWorldScaleZOffset;
            }
            else
            {
                pointerImage.transform.localScale = new Vector3(0f, 0f, 0f);
            }

            if (hit.transform.gameObject.tag == "song" || hit.transform.gameObject.tag == "playlist" || hit.transform.gameObject.tag == "artist")
            {
                GameObject playlistGameObject = hit.transform.gameObject;
                hoverUI.updateHoverUI(playlistGameObject.GetComponent <PlaylistScript>());
            }
            else
            {
                hoverUI.updateHoverUI();
            }
        }
    }