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

Programando una cámara que siga al jugador

12/60
Recursos

Aportes 13

Preguntas 0

Ordenar por:

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

Que precioso fue haberlo codeado antes y que lo haya hecho de la misma manera el profe, ya me estan haciendo efectos todos los cursos de unity que he tomado tanto aqui como en otros lados 😄

Creo que mas fácil es utilizarla herramienta que nos enseñaron e otro curso de platzi. Se llama cineChine, lo encuentran así:
Window -> Package Manager -> CinemaChine , luegole dan instalar. Les aparecerá una nueva pestaña arriba llamada cinemachine, le dan a la primera opción, create new virtua camera y luego les saldrá un nuevo elemento en la jerarquía. Lo abren y arrastran al objeto jugador a los slots de Follow y look at. Saldrá una zona azul en la pantalla de Game, esa es la zona donde la cámara seguirá al jugador, para crear una zona donde no lo seguirá vayan hasta los parámetros Aim, y cambian el valor de las variables Dead Zone Width y Height y veran como sale un rectángulo son color rodeando al jugador. Denle play y fíjense como se comporta la camara 😄. Seguro hay tutoriales en youtube para usar mejor este paquete ojala les sea de ayuda. Y sin una sola linea de código!

Si la cámara no se les mueve tienen que seleccionar la cámara, ir al inspector y en el followTarget poner Player.

public class CameraFollow : MonoBehaviour
{
    [SerializeField]
    private GameObject followTarget; //para poder seguir
    [SerializeField] //se usa para ver las variables en el editor a pesar de que sean privadas
    private Vector3 targetPosition; //tener siempre un lugar de referencia
    [SerializeField]
    private float cameraSpeed = 4.0f; //al mismo valor que el jugador

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        targetPosition = new Vector3(followTarget.transform.position.x, followTarget.transform.position.y, this.transform.position.z); //el target position seguira los pasos de x y y pero quedara alejada en z

        this.transform.position = Vector3.Lerp(this.transform.position, targetPosition, cameraSpeed * Time.deltaTime);//este objeto se movera en 3 dimenciones, partiendo de su punto original, a donde debe moverse la camara la cual es calculada por targetPosition, bajo que parametro se movera pues es la velocidad por los frame spor segundo
    }
}

Tengo 2 comentarios:
.

  1. El campo “followTarget” no necesita referenciar al GameObject del player si no mas bien a su Transform. Es una optimización mínima pero te ahorras un step en el procesamiento del código al ir directo del Transform a la posición, ya que de la otra forma pasas primero por el GameObject, luego al Transform y entonces recién a la posición (por decirlo de una manera simplificada).
    .
  2. Normalmente cuando quieres que algo siga a otro algo en Unity, esto se hace en el LateUpdate() en lugar del Update() ya que este primero se ejecuta después de que el Update ya termino de ejecutarse y te aseguras que el objeto ya se movió antes de seguirlo.
    .

    .
    PD: No se si mas adelante en el curso lo corrige, lo escribo apenas veo el video 🙈

El cod de la calse de hoy.
.

using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Threading;
using UnityEngine;

public class CameraFollow : MonoBehaviour
{
    [SerializeField]
    public GameObject followTarget;
    [SerializeField]
    private Vector3 targetPosition;
    [SerializeField]
    private float cameraSpeed = 4.0f;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        targetPosition = new Vector3(followTarget.transform.position.x,
            followTarget.transform.position.y,
            this.transform.position.z);
        this.transform.position = Vector3.Lerp(this.transform.position,
            targetPosition,
            cameraSpeed * Time.deltaTime);
    }
}

Genial

Muy completa la clase, si desean pueden leer también como apoyo la documentación oficial de Unity.

Hola alguien sabe porque no usamos cinemachine?

Para que sirve SerializeField