Exemple #1
0
    void AlignPlayer()
    {
        if (toAllignA && canAllign)
        {
            alignTimer += Time.deltaTime;
            player.RotateTowards(alignB.transform.position);

            if (alignTimer >= alignDuration)
            {
                alignTimer = 0.0f;
                toAllignA  = false;
                canAllign  = false;
            }
        }
        else if (toAllignB && canAllign)
        {
            alignTimer += Time.deltaTime;
            player.RotateTowards(alignA.transform.position);

            if (alignTimer >= alignDuration)
            {
                alignTimer = 0.0f;
                toAllignB  = false;
                canAllign  = false;
            }
        }
    }
    //When left mouse button is pressed, shoot out a ray cast from screen to pointer.//
    //If the player is within the radius of the object, it will go towards it.//

    void CheckInteract()
    {
        if (Input.GetMouseButtonDown(0) || Input.touchCount > 0)
        {
            ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out hit, rayDistance))
            {
                Debug.DrawRay(transform.position, hit.transform.position, Color.red);
                //Debug.Log (hit.transform.name);

                if (hit.transform.tag == "MountainDew")
                {
                    //lightObject.transform.rotation = Quaternion.Euler (20f, -90f, lightObject.transform.rotation.z);
                    //lightObject.transform.rotation = Quaternion.Lerp (lightObject.transform.rotation, Quaternion.identity, Time.deltaTime);
                    lightSet.color = Random.ColorHSV(0f, 1f, 0f, 1f, 0f, 1f, 0f, 1f);
                    hit.transform.Translate(Vector3.up * Time.deltaTime * 3.0f);
                    //hit.transform.gameObject.SetActive (false);
                }
                if (hit.transform.tag == "DoorSwitch")
                {
                    Transform doorThing = hit.transform.GetChild(0);                      // Get the child of the switch and deactivates it

                    Renderer doorRender = hit.transform.gameObject.GetComponent <Renderer> ();

                    if (doorRender.material.color == Color.red)
                    {
                        doorRender.material.color = Color.green;
                        doorThing.gameObject.SetActive(false);
                        //Time.timeScale = 0.5f;
                        //player.RotateTowards (hit.transform.position);
                    }
                    else
                    {
                        doorRender.material.color = Color.red;
                        doorThing.gameObject.SetActive(true);
                    }
                }
                if (hit.transform.tag == "TrapSwitch")
                {
                    Transform trapThing = hit.transform.GetChild(1);

                    Renderer  trapRender0 = hit.transform.GetChild(0).gameObject.GetComponent <Renderer> ();
                    Renderer  trapRender1 = hit.transform.GetChild(1).gameObject.GetComponent <Renderer> ();
                    Transform trapObject1 = hit.transform.GetChild(1).gameObject.GetComponent <Transform> ();

                    if (trapRender0.material.color == Color.red || trapRender1.material.color == Color.red)
                    {
                        trapRender0.material.color        = Color.green;
                        trapRender1.material.color        = Color.green;
                        trapObject1.transform.eulerAngles = new Vector3(120.0f, trapObject1.transform.rotation.y, trapObject1.transform.rotation.z);
                        //trapThing.gameObject.SetActive (false);
                    }
                    else
                    {
                        trapRender0.material.color        = Color.red;
                        trapRender1.material.color        = Color.red;
                        trapObject1.transform.eulerAngles = new Vector3(-140.0f, trapObject1.transform.rotation.y, trapObject1.transform.rotation.z);
                        //trapThing.gameObject.SetActive (true);
                    }
                }
            }
        }

        if (Input.GetMouseButton(0) || Input.touchCount > 0)
        {
            ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out hit, rayDistance))
            {
                Debug.DrawRay(transform.position, hit.transform.position, Color.red);
                //Debug.Log (hit.transform.name);

                if (hit.transform.tag == "Interactable")
                {
                    player.RotateTowards(hit.transform.position);

                    currentDoor = hit.transform.gameObject;

                    toOpenDoor = true;
                }
                else
                {
                    toOpenDoor = false;
                }
            }
        }


        if (SwipeScript.Instance.GetSwipe() == SwipeDirection.Right || Input.GetKeyDown(KeyCode.D))
        {
            if (toOpenDoor)
            {
                Debug.Log("Open Door");
                currentDoor.SetActive(false);
            }
        }
    }