// Update is called once per frame
 void Update()
 {
     if (transform.parent.parent.GetComponent <TimeLineScript>())
     {
         target = transform.parent.GetComponent <MenuPrefScript>().target;
     }
     if (action)
     {
         action = false;
         doAct();
     }
 }
    public void remove(NoteTimeLineScript toRemove)
    {
        if (gs.tutoInc == 5)
        {
            gs.audioSource.Stop();
            gs.audioSource.PlayOneShot(gs.audioClip [5]);
            gs.tutoInc = 6;
        }
        Note toDestroy = partition[toRemove.partitionIndex];

        partition.RemoveAt(toRemove.partitionIndex);
        Destroy(toDestroy.NoteTimeLine);
        Destroy(toDestroy.corr);

        // refresh the page
        Refresh();
    }
Exemple #3
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)
        {
            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;
        }

        // user can play notes by keeping trigger pressed if they have nothing selected for note duration.

        NoteScript NS = hit.transform.GetComponent <NoteScript>();

        if (hit.transform)
        {
            if (NS && !NS.transform.parent.parent.GetComponent <OctaveScript> ().TimeLine.GetComponent <TimeLineScript> ().selected)
            {
                gs.triggerPressedBefore = false;
            }

            if (controller != null && controller.triggerPressed && !gs.triggerPressedBefore)
            {
                gs.triggerPressedBefore = true;
                LengthBtnScript    LB  = hit.transform.GetComponent <LengthBtnScript> ();
                MusicBtnScript     MB  = hit.transform.GetComponent <MusicBtnScript> ();
                NoteTimeLineScript NTL = hit.transform.GetComponent <NoteTimeLineScript> ();
                MenuPrefScript     MP  = hit.transform.GetComponent <MenuPrefScript> ();
                LevelSelectScript  LS  = hit.transform.GetComponent <LevelSelectScript> ();

                if (NS)
                {
                    NS.Play();
                }
                if (LB)
                {
                    LB.Select();
                }
                if (MB)
                {
                    MB.DoAction();
                }
                if (NTL)
                {
                    NTL.openMenu();
                }
                if (MP)
                {
                    MP.doAct();
                }
                if (LS)
                {
                    LS.EnterLevel();
                }
                pointer.transform.localScale = new Vector3(thickness * 5f, thickness * 5f, dist);
            }
            else
            {
                if (controller != null && !controller.triggerPressed && !gs.waitForSceneLoad)
                {
                    gs.triggerPressedBefore = false;
                }
            }
        }
        if (!(controller != null && controller.triggerPressed && !gs.triggerPressedBefore))
        {
            pointer.transform.localScale = new Vector3(thickness, thickness, dist);
        }

        if (controller != null && controller.gripped)
        {
            gs.waitForSceneLoad = true;
            SceneManager.LoadScene(0);
        }

        SteamVR_Controller.Device device = SteamVR_Controller.Input((int)controller.controllerIndex);
        //If finger is on touchpad
        if (device.GetTouch(SteamVR_Controller.ButtonMask.Touchpad) && !touchedBefore)
        {
            touchedBefore = true;
            //Read the touchpad values
            Vector2 touchpad = device.GetAxis(EVRButtonId.k_EButton_SteamVR_Touchpad);

            // handle rotation via touchpad
            if (TLS)
            {
                if (touchpad.x > 0.3f)
                {
                    TLS.pageToShow++;
                }
                else
                {
                    if (touchpad.x < -0.3f)
                    {
                        TLS.pageToShow--;
                    }
                }
            }
            else if (CFS)
            {
                if (touchpad.y > 0.3f)
                {
                    CFS.showPrev();
                }
                else
                {
                    if (touchpad.y < -0.3f)
                    {
                        CFS.showNext();
                    }
                }
            }
        }
        else
        {
            if (!device.GetTouch(SteamVR_Controller.ButtonMask.Touchpad))
            {
                touchedBefore = false;
            }
        }
        pointer.transform.localPosition = new Vector3(0f, 0f, dist / 2f);
    }