示例#1
0
    /*pauses the game time and moves the camera
     * to the correct adjacent room*/
    private void ChangeRooms()
    {
        Vector3 newPlayerPos = new Vector3();
        float   camX         = cameraTransform.position.x;
        float   camY         = cameraTransform.position.y;
        float   camZ         = cameraTransform.position.z;
        float   playerX      = player.transform.position.x;
        float   playerY      = player.transform.position.y;
        float   playerZ      = player.transform.position.z;



        /* depending on which way the door is facing,
         * we set target positions for the move*/
        switch (doorType)
        {
        case DoorType.up:
            newPos       = new Vector3(camX, camY + gridSize.y, camZ);
            newPlayerPos = new Vector3(playerX, playerY + playerDisplacement, playerZ);
            break;

        case DoorType.down:
            newPos       = new Vector3(camX, camY - gridSize.y, camZ);
            newPlayerPos = new Vector3(playerX, playerY - playerDisplacement, playerZ);

            break;

        case DoorType.left:
            newPos       = new Vector3(camX - gridSize.x, camY, camZ);
            newPlayerPos = new Vector3(playerX - playerDisplacement, playerY, playerZ);

            break;

        case DoorType.right:
            newPos       = new Vector3(camX + gridSize.x, camY, camZ);
            newPlayerPos = new Vector3(playerX + playerDisplacement, playerY, playerZ);
            break;

        default:
            break;
        }
        player.transform.position = newPlayerPos;
        cameraScript.ChangeRooms(newPos);
    }