Exemplo n.º 1
0
 // Start is called before the first frame update
 void Start()
 {
     appendpath  = Application.dataPath + ParticipantIDangle;
     appendpath2 = Application.dataPath + ParticipantIDtime;
     Attentiongrabberright.SetActive(false);
     AttentionGrabberleft.SetActive(false);
 }
Exemplo n.º 2
0
    void Update()
    {
        eulerAngY = transform.localEulerAngles.y;
        //Left return button this pushes the filter on the right side back to the right position
        if (Input.GetButtonDown("Fire1"))
        {
            Destroy(clone);

            currentleft             = 1;
            manualreturnleft        = true;
            Thresholdleft           = 400f;
            Thresholdleft2          = 400f;
            AttentionGrabbercreator = false;
            sWriter2 = new StreamWriter(appendpath2, append: true);
            sWriter  = new StreamWriter(appendpath, append: true);
            sWriter2.Write(",,Filter Moving Left Manually Returned MEDIUM\n,,");
            sWriter2.Write(timerleft2 + "\n");

            sWriter2.Close();
            sWriter.Write(",,Filter Moving Left Manually Returned MEDIUM \n,,");
            for (int k = 0; k < writelist.Count; k++)
            {
                sWriter.Write(writelist[k] + "\n,,");
            }
            sWriter.Write("\n");
            sWriter.Close();
            writelist.Clear();
            timerleft2 = 0;
            timerleft  = 0;
        }
        if (Input.GetButtonDown("Speedhalf"))
        {
            speed = .015f;
        }
        if (Input.GetButtonDown("Speed1"))
        {
            speed = .03f;
        }
        if (Input.GetButtonDown("Speeddouble"))
        {
            speed = .06f;
        }
        //left filterstarter pushes the right side to the left
        if (Input.GetButtonDown("a"))
        {
            currentleft = 0;

            AttentionGrabbercreator = true;

            triggeractivateleft = true;
            manualreturnleft    = false;
            currentangleleft    = eulerAngY;
            Debug.Log(currentangleleft);
            Desiredangleleft = currentangleleft - Inputangleleft;
            Debug.Log(Desiredangleleft);

            if (Desiredangleleft < 0)
            {
                Desiredangleleft = 360 + Desiredangleleft;
            }
            Thresholdleft = Desiredangleleft - 15;
            Debug.Log("Threshold = " + Thresholdleft);
            Thresholdleft2 = Desiredangleleft + 15;
            Debug.Log("Threshold2 = " + Thresholdleft2);
        }


        //Right filter return pushes the left side filter back home
        if (Input.GetButtonDown("Fire2"))
        {
            Destroy(clone);

            current                 = 1;
            manualreturn            = true;
            AttentionGrabbercreator = false;
            Threshold               = 400f;
            Threshold2              = 400f;
            sWriter2                = new StreamWriter(appendpath2, append: true);
            sWriter                 = new StreamWriter(appendpath, append: true);
            sWriter2.Write(",,,,,,,,Filter Moving Right Manually Returned MEDIUM\n,,,,,,,,");
            sWriter2.Write(timer2 + "\n");
            sWriter.Write(",,,,,,,,Filter Moving Right Manually Returned MEDIUM\n,,,,,,,,");
            for (int k = 0; k < writelist.Count; k++)
            {
                sWriter.Write(writelist[k] + "\n,,,,,,,,");
            }
            sWriter.Write("\n");
            writelist.Clear();
            sWriter.Close();
            sWriter2.Close();
            timer2 = 0;
            timer  = 0;
        }


        //right filter start pushed left side filter towards the right
        if (Input.GetButtonDown("Fire3"))
        {
            current = 0;
            AttentionGrabbercreator = true;
            triggeractivate         = true;
            manualreturn            = false;
            currentangle            = eulerAngY;
            Debug.Log(currentangle);
            Desiredangle = currentangle + Inputangle;
            Debug.Log(Desiredangle);
            if (Desiredangle > 360)
            {
                Desiredangle = Desiredangle - 360;
            }
            Threshold = Desiredangle - 15;
            Debug.Log("Threshold = " + Threshold);
            Threshold2 = Desiredangle + 15;
            Debug.Log("Threshold2 = " + Threshold2);
        }


        if (triggeractivate)
        {
            //Left side filter is being pushed to the right
            float step = speed * Time.deltaTime;  // calculate distance to move

            if (!manualreturn)
            {
                timer  = timer += Time.deltaTime;
                timer2 = timer2 += Time.deltaTime;
            }
            if (timer >= waittime)
            {
                writelist.Add(item: eulerAngY);

                timer = timer - waittime;
            }
            Geometry.transform.position = Vector3.MoveTowards(Geometry.transform.position, waypoints[current].position, step);


            if ((eulerAngY >= Threshold) && (eulerAngY <= Threshold2))
            {
                current = 1;
                timer2  = timer2 -= Time.deltaTime;
                if (AttentionGrabbercreator)
                {
                    Attentiongrabberright.SetActive(true);
                    clone = Instantiate(Attentiongrabberright, Attentiongrabberright.transform.position, Attentiongrabberright.transform.rotation);
                    AttentionGrabbercreator = false;
                    Attentiongrabberright.SetActive(false);
                }

                if (Vector3.Distance(Geometry.transform.position, waypoints[current].position) < 0.001f)
                {
                    triggeractivate = false;
                    manualreturn    = false;
                    sWriter2        = new StreamWriter(appendpath2, append: true);
                    sWriter         = new StreamWriter(appendpath, append: true);
                    sWriter.Write(",,,,,,,,Righttrigger MEDIUM \n,,,,,,,,");
                    for (int k = 0; k < writelist.Count; k++)
                    {
                        sWriter.Write(writelist[k] + "\n,,,,,,,,");
                    }
                    sWriter.Write("\n");

                    sWriter2.Write(",,,,,,,,Time taken for user to turn right MEDIUM \n,,,,,,,,");

                    sWriter2.Write(timer2 + "\n");
                    sWriter.Close();
                    sWriter2.Close();
                    writelist.Clear();
                    timer2 = 0;
                    timer  = 0;

                    Destroy(clone);
                }
            }

            else
            {
                if (!manualreturn)
                {
                    current = 0;
                }
            }
        }
        if (triggeractivateleft)
        {
            //right side filter is moving left
            if (!manualreturnleft)
            {
                timerleft  = timerleft += Time.deltaTime;
                timerleft2 = timerleft2 += Time.deltaTime;
            }
            if (timerleft >= waittime)
            {
                writelist.Add(item: eulerAngY);
                timerleft = timerleft - waittime;
            }
            float step = speed * Time.deltaTime;  // calculate distance to move
            Geometryleft.transform.position = Vector3.MoveTowards(Geometryleft.transform.position, waypointsleft[currentleft].position, step);


            if ((eulerAngY >= Thresholdleft) && (eulerAngY < Thresholdleft2))
            {
                currentleft = 1;
                timerleft2  = timerleft2 -= Time.deltaTime;

                if (AttentionGrabbercreator)
                {
                    AttentionGrabberleft.SetActive(true);
                    clone = Instantiate(AttentionGrabberleft, AttentionGrabberleft.transform.position, AttentionGrabberleft.transform.rotation);
                    AttentionGrabbercreator = false;
                    AttentionGrabberleft.SetActive(false);
                }
                if (Vector3.Distance(Geometryleft.transform.position, waypointsleft[currentleft].position) < 0.001f)
                {
                    triggeractivateleft = false;

                    manualreturnleft = false;
                    sWriter2         = new StreamWriter(appendpath2, append: true);
                    sWriter          = new StreamWriter(appendpath, append: true);
                    sWriter.Write(",,Lefttrigger MEDIUM \n,,");
                    for (int k = 0; k < writelist.Count; k++)
                    {
                        sWriter.Write(writelist[k] + "\n,,");
                    }
                    sWriter.Write("\n");

                    sWriter2.Write(",,Time taken for user to turn left MEDIUM\n,,");

                    sWriter2.Write(timerleft2 + "\n");
                    sWriter.Close();
                    sWriter2.Close();
                    writelist.Clear();
                    timerleft2 = 0;
                    Destroy(clone);
                }
            }

            else
            {
                if (!manualreturnleft)
                {
                    currentleft = 0;
                }
            }
        }
    }