Beispiel #1
0
    private void UseDoor()
    {
        if (!_linkedDoor)
        {
            return;
        }

        if (_autoLinkBack)
        {
            _linkedDoor._linkedDoor = this;
        }

        RoomScript otherRoom = _linkedDoor.GetComponentInParent <RoomScript>();

        foreach (Renderer renderer in otherRoom.GetComponentsInChildren <Renderer>())
        {
            renderer.enabled = true;
        }

        player.transform.SetParent(otherRoom.transform);

        player.transform.localPosition = _linkedDoor.transform.localPosition;
        player.GetComponent <PlayerMovement>().Update();

        if (_frontDoor)
        {
            StartCoroutine(Tweening(this, _linkedDoor));
        }
        else
        {
            StartCoroutine(Tweening(_linkedDoor, this));
        }
    }
Beispiel #2
0
    IEnumerator TransitionCoroutine(RoomScript targetRoom, Vector3 localPosition)
    {
        foreach (Renderer renderer in targetRoom.GetComponentsInChildren <Renderer>())
        {
            renderer.enabled = true;
        }

        CameraBehaviour camera = GameObject.Find("Camera").GetComponent <CameraBehaviour>();

        camera.target             = null;
        camera.transform.position = new Vector3(-9999999, -99999, -999999);

        RoomScript oldRoom = player.GetComponentInParent <RoomScript>();

        player.GetComponent <PlayerMovement>().enabled     = false;
        player.GetComponent <PlayerInteractions>().enabled = false;

        for (float i = 0.0f; i <= 1.0f; i += 0.01f)
        {
            main_camera.FOV += i * 2.5f;
            tweenBehaviour.SetAlpha(i);
            yield return(null);
        }

        player.transform.SetParent(targetRoom.transform);
        player.transform.localPosition = localPosition;
        player.GetComponent <PlayerMovement>().Update();

        for (float i = 1.0f; i >= 0.0f; i -= 0.01f)
        {
            main_camera.FOV -= i * 2.5f;
            tweenBehaviour.SetAlpha(i);
            yield return(null);
        }

        yield return(null);

        player.GetComponent <PlayerMovement>().enabled     = true;
        player.GetComponent <PlayerInteractions>().enabled = true;


        if (oldRoom != targetRoom)
        {
            foreach (Renderer renderer in oldRoom.GetComponentsInChildren <Renderer>())
            {
                renderer.enabled = false;
            }
        }
    }