示例#1
0
    void OnTriggerEnter(Collider other)
    {
        Debug.Log("OnTriggerEnter");
        //other.gameObject.GetComponent<AudioSource> ().PlayOneShot (other.gameObject.GetComponent<FirstPersonController>().helloClip);

        if (objectName.Equals("BridgeFloorless"))
        {
            if (other.gameObject.name.Equals("Player"))
            {
                AudioFilesLevelFloppi afFloppi = GameObject.Find("AudioFilesLevelFloppi").GetComponent <AudioFilesLevelFloppi>();
                if (afFloppi.fellofZone == AudioFilesLevelFloppi.FellofZone.None)
                {
                    // play felldown clip
                    AudioManager.instance.queueAudioClip(afFloppi.getBridgeFelldownClip());
                    Debug.Log("will call audio collider");
                }

                afFloppi.fellofZone = AudioFilesLevelFloppi.FellofZone.FellofZoneBridge;
            }
        }
        else if (objectName.Equals("RedEyeLeftEyeFloorlessCollider"))
        {
            if (other.gameObject.name.Equals("Player"))
            {
                AudioFilesLevelFloppi afFloppi = GameObject.Find("AudioFilesLevelFloppi").GetComponent <AudioFilesLevelFloppi>();
                if (afFloppi.fellofZone == AudioFilesLevelFloppi.FellofZone.None)
                {
                    AudioManager.instance.queueAudioClip(afFloppi.getLeftEyeRightEyeFelldownClip());
                }

                afFloppi.fellofZone = AudioFilesLevelFloppi.FellofZone.FellofZoneLeftEyeRightEye;
            }
        }
    }
    protected void Update()
    {
        LastFixation = _dataProvider.Last;

        // Get the last fixation point.
        EyeXFixationPoint lastFixation = GetComponent <FixationDataComponent>().LastFixation;

        if (lastFixation.IsValid)
        {
            if (lastFixation.EventType == FixationDataEventType.Begin)
            {
                // A fixation started.
                // Convert the fixation data to screen space.
                Vector2 screenCoordinates = lastFixation.GazePoint.Screen;
                Vector3 worldCoordinates  = Camera.main.ScreenToWorldPoint(new Vector3(screenCoordinates.x, screenCoordinates.y, 0));

                Ray fixationRay = Camera.main.ScreenPointToRay(new Vector3(screenCoordinates.x, screenCoordinates.y, 0));
                Debug.DrawRay(fixationRay.origin, fixationRay.direction * 30, Color.magenta);

                if (Physics.Raycast(fixationRay.origin, fixationRay.direction, out fixationRaycastHit, 30))
                {
                    //Debug.Log ("I fixed: " + fixationRaycastHit.collider.gameObject.name);
                    string fixedObject = fixationRaycastHit.collider.gameObject.name;

                    colorCollider.transform.position = fixationRaycastHit.transform.position;

                    //fixationRaycastHit.collider.gameObject.transform.position = new Vector3(0, 0, 0);

                    //Debug.Log ("fixedObject: " + fixedObject);
                    AudioFilesLevelFloppi afFloppi = GameObject.Find("AudioFilesLevelFloppi").GetComponent <AudioFilesLevelFloppi>();

                    if (fixedObject.Contains("Button_red"))
                    {
                        AudioManager.instance.playAudioClipIfFree(afFloppi.getRedButtonClip());
                    }
                    else if (fixedObject.Contains("Button_green"))
                    {
                        AudioManager.instance.playAudioClipIfFree(afFloppi.getGreenButtonClip());
                    }
                    else if (fixedObject.Contains("Button_blue"))
                    {
                        AudioManager.instance.playAudioClipIfFree(afFloppi.getBlueButtonClip());
                    }
                }
            }
            else if (lastFixation.EventType == FixationDataEventType.Data)
            {
                // Fixation data is being retrieved.
            }
            else if (lastFixation.EventType == FixationDataEventType.End)
            {
                // The fixation ended.
            }



            /*Ray fixationRay = Camera.main.ScreenPointToRay(new Vector3(screenCoordinates.x, screenCoordinates.y, 0.0f));
             * Debug.DrawRay (fixationRay.origin, fixationRay.direction * distanceToSee, Color.magenta);
             *
             * if (Physics.Raycast (gazeRay.origin, gazeRay.direction, out gazeRaycastHit, distanceToSee)) {
             *      Debug.Log ("I gazed: " + gazeRaycastHit.collider.gameObject.name);
             *      gazeRaycastHit.collider.gameObject.GetComponent<Renderer>().material.color = Color.green;
             *
             *      // set timer of block to 1 (when timer reaches 0 it will get standard gray color)
             *      BlockScript blockScript = gazeRaycastHit.collider.gameObject.GetComponent<BlockScript>();
             *      blockScript.lostGazeTimer = 0.35f;
             * }*/
        }
    }