El personaje y el controlador

1

Introducción: De la idea al desarrollo

2

Estructura de carpetas en Unity

3

Assets, Game Objects y Sprite Atlas

4

Animaciones desde un sprite map

5

Animation Controller y Transiciones

6

Plataformas y gravedad

7

Física en Unity

8

El script de control

9

Programando funciones en C# y Unity: Jump

10

Detectar el suelo con Raycast

11

Herramientas de debugging visual

12

Cambiar las animaciones según los estados

13

Reto: Terminando nuestras animaciones

14

Solución del reto

15

Hacer que el personaje camine

El manager del videojuego

16

Cómo funciona el Game Manager

17

El Singleton

18

El modo de juego

19

Input manager y juegos multiplataforma

20

Corrección del Bug del salto

21

La zona de muerte

22

Reiniciar la partida

23

Corrigiendo los bugs al reiniciar nuestro juego

Diseño procedural de niveles 2D

24

El diseño de niveles a mano

25

Configurando nuestros assets para el diseño procedural

26

Generación procedural de niveles

27

Creando la zona que eliminará bloques del nivel excedentes

28

Añadir un nuevo bloque de forma aleatoria

29

La cámara que sigue al jugador

30

Destrucción de bloques antiguos

31

Terminando de programar la destrucción de bloques antiguos

32

Solucionando el salto de la cámara al reiniciar el juego

HUD, menús y gameplay

33

El canvas en Unity

34

Uso de botones para crear un menú

35

La lógica de los menús

36

Ejercicio: Preparando el menú del juego

37

Programando el menú del juego

38

Los coleccionables del juego

39

Actualizar UI de coleccionables

40

Iniciando con pociones y maná

41

Pociones de vida y maná

42

Programando las barras de vida y maná

43

Calculando los puntajes con la distancia y el tiempo de juego

44

La lógica del maná

Enemigos y dificultad

45

Plataformas móviles

46

Iniciar movimiento de la plataforma con trigger

47

Enemigos móviles

48

Enemigos móviles: preparando nuestro enemigo para girar

49

Enemigos móviles: programando que fire al chocar

50

Arreglando el collider de nuestra roca

51

Programando la condición de muerte del personaje

52

Añadiendo música de fondo a nuestro videojuego

53

Añadiendo efectos de sonido y cierre del curso

No tienes acceso a esta clase

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

Curso de C# para Videojuegos

Curso de C# para Videojuegos

Juan Gabriel Gomila

Juan Gabriel Gomila

La cámara que sigue al jugador

29/53
Recursos

Ahora que nuestro videojuego genera bloques de elementos y plataformas de forma aleatoria, es hora de configurar la cámara por dónde los jugadores pueden visualizar al personaje y sus enemigos.

Para esto, podemos unir la cámara del videojuego a los movimientos de nuestro personaje, así la cámara se moverá al mismo tiempo y a los mismos lugares que nuestro personaje. El problema de esta primera solución es que la cámara seguirá incluso los movimientos verticales del personaje (cuando saltamos o caemos de las plataformas), así que vamos a crear un script llamado CameraFollow para seguir al jugador a medida que avanza horizontalmente por el juego.

Aportes 13

Preguntas 8

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Una pregunta cuando le pongo el barrido de camara mi personaje pareciera que temblara no se bien pero si se lo quito esta perfectamente bien

Me ocurre un error cuando coloco Main Camera como hijo del Player al darle play al mover mi personaje este desaparece y se mueve como si se estuviese teletransportando y no me deja seguir caminando, sera la forma en que abre programado el movimiento de mi personaje?

Este fue mi acercamiento al problema escuchando la teoria del profe, veo que su codigo es mas eficiente y mejor de entender, asi que al final implementare su codigo ya que el mio es redundante.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraMovement: MonoBehaviour
{
    //Esta mas ordenado para que tengan mas sentido en el editor
    public Transform target;
    public Vector3 offSet = new Vector3(0.2f, 0.0f, -10.0f);
    public bool smooth = false;
    public float dampingTime = 0.3f;
    public Vector3 velocity = Vector3.zero;
    

    // Update is called once per frame
    void Update()
    {
        cameraMovement(smooth);
    }

    void cameraMovement(bool smooth)
    {
        if(smooth)
        {
            //Aqui podemos modificar los ejes en los cuales ocurren los movientos de la camara y el player
            Vector3 cameraVector = new Vector3(this.transform.position.x, offSet.y, offSet.z);
            Vector3 targetVector = new Vector3(target.position.x, offSet.y, offSet.z);

            this.transform.position = Vector3.SmoothDamp(cameraVector, targetVector, ref velocity, dampingTime);

        }else
        {
            Vector3 destination = new Vector3(target.position.x - offSet.x,
                                                offSet.y,
                                                offSet.z);
            
            this.transform.position = destination;
        }
    }
}

En el anterior curso se uso un programa externo dentro de la tienda, no recuerdo el nombre, pero basicamente hacia todo el problema mas facil, esto es valido usar cosas preconfiguradas??

tendria que colocarle alguna especie de Bounderies a la camara para mantenerla estatica en “y” a menos que el personaje se vaya a salir del rango de vision

También esta la opción de cinemachine que viene incorporado en Unity por si alguien le gustaría mirarlo: https://unity.com/unity/features/editor/art-and-design/cinemachine

Esto se puede hacer mil veces mas fácil con un componente llamado Cinemachine

como hacer, si los Level blocks de mi escena son altos y entonces mi jugador sube y sube y se pierde de vista de la cámara por que ella esta estática en el eje Y? como lograr que la camara solo se mueva en Y si el personaje esta subiendo fuera de su rango, o bajando en su defecto.

Genial

Genial. Todo supe bien hasta el momento

Que util fue esta clase, de verdad esta muy bien estucturado el codigo, modulado y facil de entender.

Otra forma de hacerlo que da casi el mismo resultado es crear este script, asignarlo a la cámara y referenciar el GameObject a seguir desde el inspector (en este caso el jugdaor, por eso el nombre de la variable)