예제 #1
0
    // Update is called once per frame
    void Update()
    {
        //RaycastHit hit;

        Vector3 fwd       = transform.TransformDirection(Vector3.forward);
        Ray     rayOrigin = new Ray(transform.position, transform.forward);

        if (Physics.Raycast(transform.position, fwd, out hit, 400))
        {
            Debug.DrawRay(rayOrigin.direction, hit.point, Color.green, 1);

            if (hit.transform != lastHit)
            {
                newHitTime = Time.time;
                lastHit    = hit.transform;
                circleLoader.material.SetFloat("_Cutoff", 1);
            }

            if (hit.transform.name == "signage" && signHasBeenSeen == false)
            {
                signHasBeenSeen      = true;
                canTargetObjects     = true;
                lightSwitchStartTime = Time.time;
                //overheadLight.intensity = 1;
                //spotlightLight.spotAngle = 15;
            }

            if (hit.transform.tag == "collectibleItem" && canTargetObjects == true)
            {
                //shouldMove = true;
                if (Time.time - newHitTime > 1)
                {
                    circleLoader.material.SetFloat("_Cutoff", 1);
                    objMoverScript = hit.transform.GetComponent <slerpMove>();
                    objMoverScript.MoveNow();
                }
                else if (Time.time - newHitTime < 1)
                {
                    circleLoader.material.SetFloat("_Cutoff", 1 - (Time.time - newHitTime));
                }
                relativePos      = hit.transform.position - spotlight.position;
                rotationToTarget = Quaternion.LookRotation(relativePos);
                MoveSpotlight();
            }

            if (signHasBeenSeen && !lightsAreSwitched)
            {
                SwitchLights();
            }

            if (hit.transform.name == "again")
            {
                Application.LoadLevel("MainScene");
            }
        }
    }
예제 #2
0
    // Update is called once per frame
    void Update()
    {
        //RaycastHit hit;

        Vector3 fwd = transform.TransformDirection(Vector3.forward);
        Ray rayOrigin = new Ray (transform.position, transform.forward);

        if (Physics.Raycast(transform.position, fwd, out hit, 400))
        {
            Debug.DrawRay(rayOrigin.direction, hit.point, Color.green, 1);

            if (hit.transform != lastHit){
                newHitTime = Time.time;
                lastHit = hit.transform;
                circleLoader.material.SetFloat("_Cutoff", 1);
            }

            if (hit.transform.name == "signage" && signHasBeenSeen == false) {
                signHasBeenSeen = true;
                canTargetObjects = true;
                lightSwitchStartTime = Time.time;
                //overheadLight.intensity = 1;
                //spotlightLight.spotAngle = 15;
            }

            if (hit.transform.tag == "collectibleItem"  && canTargetObjects == true) {
                //shouldMove = true;
                if (Time.time - newHitTime > 1) {
                    circleLoader.material.SetFloat("_Cutoff", 1);
                    objMoverScript = hit.transform.GetComponent<slerpMove>();
                    objMoverScript.MoveNow();
                } else if (Time.time - newHitTime < 1){
                    circleLoader.material.SetFloat("_Cutoff", 1 - (Time.time - newHitTime));
                }
                relativePos = hit.transform.position - spotlight.position;
                rotationToTarget = Quaternion.LookRotation(relativePos);
                MoveSpotlight();

            }

            if (signHasBeenSeen && !lightsAreSwitched) {
                SwitchLights();
            }

            if (hit.transform.name == "again"){
                Application.LoadLevel("MainScene");
            }
        }
    }