A continuación, vamos a revisar lo que sabemos sobre la cámara y te enseñaré a hacer que esta siga al personaje sin escribir ni una sola línea de código, tan solo usando la grandísima herramienta que Unity nos brinda llamada “Cinemachine”
Para ello nos vamos a la opción de Window>Package Manager>Cinemachine y la instalamos
Una vez instalado nos aparecerá una nueva opción dentro de nuestro menú superior llamado Cine- machine desde él vamos a pulsar encima y elegimos crear una nueva 2d Camara
Esto lo que nos va a crear es una cámara virtual.
Por un lado tenermos este nuevo objeto que es la cámara virtual 1 y dentro de la camara principal, la Main Camera tendremos un icono rojo que va a ser el cerebro que controla a esta camara virtual. Por lo que si seleccionamos la MainCamera y nos vamos al inspector tendremos un nuevo componente llamado CinemachineBrain desde el cual vamos a definir su comportamiento
Dentro del inspector de la MainCamera vamos a dejarlo casi igual. Solo cambiaremos el Update method a Fixed Update
Y hacemos lo mismo con el Blend Update Method
Cogemos la camara Virtual y la ponemos justo despues de la Main Camera:
A continuación creamos un objeto vacio llamado GameCameras
Este lo reseteamos. Es decir pulsamos en la pestaña de Transform los tres puntitos que aparecen lo más a la derecha posible de dicha pestaña y de las opciones que aparecen pulsamos Reset.
Metemos las dos camaras creadas anteriormente dentro del GameCameras
Y subimos el GameCameras en la primera posición de la Jerarquía.
El siguiente paso es configurar nuestra camara virtual. Para ello la seleccionamos y desde el inspector nos vamos a la opción de follow ahí arrastraremos el objeto Player ya que de esta manera nuestra camara seguirá a nuestro personaje.
Ahora lo que ocurre es que la camara si sigue a nuestro personaje pero al llegar al borde del mapa se ve también el mismo borde y eso queda feo así que para arreglarlo vamos a hacer una serie de configuraciones.
Lo primero de todo vamos a crear un objeto vacio dentro de nuestro GameCameras y lo llamamos Confiner. Abrimos su inspector y le añadimos un componente llamado Polygon Collider 2D
Cambiamos la Layer a UI
Y marcamos la opción de que sea un IsTrigger
Ahora dentro de la opción EditCollider dejamos marcado el botón para que de este modo podamos editar el poligono que aparecerá en nuestra escena.
En la pestaña escena si nos fijamos ha aparecido un pentágono con líneas verdes y unos cuadrados verdes en sus vertices dichos cuadrados los moveremos para que cojan los extremos del mapa cuadrado que tenemos.
Una vez que tenemos nuestro poligono ocupando los límites de nuestro mapa nos vamos a la camara virtual y añadimos desde el Inspector una Extensión llamada CinemachineConfiner
A este script debemos añadirle el objeto Confiner que hemos creado dentro de la opción Bounding Shape 2D desde la pestaña de Jerarquía
Ahora si movemos a nuestro personaje podremos ver que cuando nos aproximamos a los bordes del mapa nuestra camara no avanza más.
Hecho esto vamos a seguir configurando nuestra camara para que nuestro juego este lo más acabado posible.
Por lo que nos vamos a la Main Camera y le vamos a añadir un componente llamado Pixel Perfect Camera dentro de la pestaña de Inspector
Ya que el estilo de este juego es Pixel art vamos a resaltarlo con este componente por lo que en su resolución vamos a poner que sea de 135 x 240
Y el Pixel per unit debe de estar en 16 ya que ese es el tamaño de nuestros Tiles en nuestro juego. Y para que la textura de nuestro render se vea con ese estilo dejamos marcada Upscale Render Texture
Ahora nos vamos al objeto camara virtual y vamos a añadir una nueva extensión para que sea compatible el movimiento de la camara y el componente Pixel Perfect
Con esto ya tendríamos configurada nuestra camara para nuestro juego. Un último paso que haremos será crear un prefab de nuestras camaras. Arrastraremos nuestro GameCameras de la pestaña de Jerarquía a la carpeta de prefabs para que de esta manera podamos utilizar la configuración de nuestras camaras en cualquier escena que hagamos dentro de nuestro juego configuración de nuestras camaras en cualquier escena que hagamos dentro de nuestro juego