Introducción

1

Game Design del juego

2

La estructura y assets de un proyecto en Unity

3

Convirtiendo nuestros assets en Tiles

4

Tilemaps y creación del escenario

5

Bonus: FastForward de la creación del escenario, sorting layers y creación de colliders

6

Acá encontrarás los archivos de este curso

Personaje principal: Movimiento y Animaciones

7

El jugador y el movimiento

8

Creando nuestra primera animación

9

Creando el grafo de animaciones

10

Usando un árbol de animaciones

11

Mostrando la solución del desafío e implementando transición entre blended trees

12

Programando una cámara que siga al jugador

13

Corrección del bug gráfico

14

límites del escenario, rigid bodies

15

Ejercicio: diseño de interiores

Escenarios Avanzados

16

Transiciones entre escenas

17

Mantener Player y Camera entre escenas

18

Spawning Points: programando que el jugador y la cámara aparezcan en el lugar correcto al cambiar de escena

19

Agregando Identificadores a nuestros Spawning Points para controlar mejor el flujo de nuestro juego

Enemigos Avanzados

20

Creando nuestro enemigo

21

Programando las físicas y el patrullaje del enemigo

22

Generando movimiento completamente aleatorio

23

Programando el ataque del enemigo

24

Crear Manager de Health del Player

25

Crear armas

26

Programando el ataque del Player con arma

27

Mover la espada al caminar

28

Creando el ataque con espada

29

Ejecutando el ataque con un botón

30

Movimiento en diagonal

31

Optimizando nuestro player controller

32

Ataque mejorado

33

Uso de partículas

34

Añadir el daño del enemigo en batalla

35

Programando los contadores de vida del enemigo

36

Colocando más info de UI en pantalla

37

Script de la vida

Personaje principal avanzado

38

Añadir el daño del personaje (ejercicio)

39

Sistema de puntos de experiencia para nuestro personaje principal

40

Level Up!

41

Level Up! Defensa y Reto Final del Módulo: Stats de los enemigos

42

Creando un NPC

43

Limitar el movimiento de nuestro NPC

44

Creando una pantalla de diálogos para nuestro RPG

45

El diálogo del NPC

46

Múltiples líneas de diálogo

47

Parar el NPC durante el diálogo

48

Parar el personaje durante el diálogo

Quests

49

La estructura de una quest

50

Quest 1: Ir a un lugar

51

Quest 2: Encontrar un objeto

52

Quest 3: Matar enemigos

53

Revisión de bugs

54

Mantener la cámara dentro del escenario

55

El problema al cambiar de escena

Audio

56

Agregando SFX a nuestro videojuego

57

Agregando música a nuestro videojuego

58

Ajustar volúmen del audio de cada uno de los efectos de sonido

59

Creando un VolumeManager

60

Agregando economía a nuestro juego y cierre

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Mantener la cámara dentro del escenario

54/60
Recursos

¿Cómo evitar que la cámara se mueva fuera de los límites en un videojuego de rol?

En el desarrollo de videojuegos, especialmente en géneros como los juegos de rol, es común enfrentar el problema de que la cámara muestre áreas no deseadas, como el borde azul en la pantalla. Pero no te preocupes, existe una técnica efectiva para resolverlo: limitar el movimiento de la cámara dentro de un área específica. A continuación, veremos cómo puedes acabar con este problema y optimizar la experiencia de juego.

¿Cuál es el primer paso para definir los límites de la cámara?

Lo primero que haremos es establecer un área que delimitará el movimiento de la cámara. Imagina que estás creando un margen invisible alrededor de tu escenario. Esto se puede lograr fácilmente usando un BoxCollider2D de tipo "Trigger" en Unity. Aquí tienes los pasos básicos:

  1. Crear un GameObject vacío y nombrarlo cameraLimits.
  2. Posicionarlo en las coordenadas (0, 0, 0), es decir, en el centro del escenario.
  3. Añadirle un BoxCollider2D y ajustarlo para que abarque todo el escenario excluyendo el área no deseada.

¿Cómo podemos implementar el código para confinar la cámara?

Ahora que tenemos nuestro BoxCollider2D listo, debemos programar la cámara para que se mantenga dentro de estos límites. Esto se logra mediante el uso de un script que ajustará la posición de la cámara.

private Camera theCamera;
private BoxCollider2D cameraLimits;
private Vector3 minLimits, maxLimits;
private float halfWidth, halfHeight;

private void Start()
{
    theCamera = GetComponent<Camera>();
    cameraLimits = GameObject.Find("cameraLimits").GetComponent<BoxCollider2D>();
    minLimits = cameraLimits.bounds.min;
    maxLimits = cameraLimits.bounds.max;

    // Calcular la mitad de la anchura y altura de la cámara
    halfHeight = theCamera.orthographicSize;
    halfWidth = halfHeight * Screen.width / Screen.height;
}

private void LateUpdate()
{
    // Ajustar posición de la cámara para que no salga de los límites
    float clampedX = Mathf.Clamp(transform.position.x, minLimits.x + halfWidth, maxLimits.x - halfWidth);
    float clampedY = Mathf.Clamp(transform.position.y, minLimits.y + halfHeight, maxLimits.y - halfHeight);

    transform.position = new Vector3(clampedX, clampedY, transform.position.z);
}

¿Qué hay que tener en cuenta para ajustar la proporción?

Al ajustar el movimiento de la cámara, tendrás en cuenta la relación de aspecto de tu juego. Esto asegura que la cámara se ajuste adecuadamente en diferentes dispositivos, como móviles, televisores o pantallas de distintas resoluciones:

  • La halfHeight se calcula directamente del tamaño ortográfico de la cámara.
  • halfWidth se ajusta usando la relación entre el ancho y el alto de la pantalla: halfWidth = halfHeight * Screen.width / Screen.height.

¿Cómo verificar que todo funcione correctamente?

Una vez que hayas escrito y agregado el script a la cámara:

  1. Cambia al modo "Debug" en Unity para asegurarte de que todas las variables privadas se configuren correctamente.
  2. Ejecuta el juego y desplázate hacia los bordes de la escena. La cámara debería detenerse suavemente al alcanzar los límites.
  3. Si observas algún borde azul residual, ajusta el BoxCollider2D y asegúrate de que sus bordes coincidan perfectamente con el área de juego.

Programar y ajustar los límites de la cámara es crucial para garantizar una experiencia visual impresionante y consistente en juegos de rol. Continúa explorando y aprendiendo, verás que los detalles marcan una gran diferencia en el producto final.

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Como mencione en las clases en las que programamos la cámara existe un paquete de Unity llamado cinemachine que facilita un montón el trabajo y tiene un sin numero de posibilidades de configuración. En verdad les recomiendo esta herramienta 😄

La camara se sale del boundary que habiamos hecho porque al inicializar los parametros halfHeight, y halfWidth se deben inicializar asi:

        halfHeight = theCamera.orthographicSize;  
        halfWidth = halfHeight / Screen.height * Screen.width;

Es más sencillo usar Cinemachine. Quería hacerlo de la forma del profe, pero mi escenario no es cuadrado como el de él. Con lo cual tendría que agregar más de un objeto como collider para los camera limits, y traerlo un array tal vez? No se la verdad. Voy por el camino facil

Genial