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 gire 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

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

5D
3H
15M
57S
Curso de C# para Videojuegos

Curso de C# para Videojuegos

Juan Gabriel Gomila

Juan Gabriel Gomila

El modo de juego

18/53
Recursos

Aportes 12

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

es muy interesante ver el funcionamiento de los cambios de estado con el Game Manager, es en este momento que entiendes como es que puasabas los juegos solo oprimiendo 鈥淧鈥, como con una 鈥淢鈥 te desplegaban un menu de opciones y asi. Te expande la mente saber como funcionan las cosas y lo que puedes lograr.

Hasta ahora es uno de los mejores cursos que he seguido. Buen Profesor

Una peque帽a validacion para evitar ejecutar el StartGame cada vez que detectamos el Input

if (Input.GetKeyDown(KeyCode.S) && currentGameState != GameState.inGame) {
	StartGame();
}

la cantidad de cosas que se pueden hacer con tan solo 18 clases de 53 es incre铆ble

No queria tener una lista de if else por cada tecla a la que le asignemos una funcion, por lo cual quise aplicar un switch case pero _ Input.GetKeyDown(KeyCode.S)_ no me lo permitia como variable ; asi que busque en foros y encontre esta solucion:

void Update()
{
var input = Input.inputString;
switch (input)
{
case 鈥渟鈥:
StartGame();
break;
case 鈥減鈥:
BackToMenu();
break;
default:
break;
}
}

Esto me ayud贸 a dejarlo listo:

// Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.S))
        {
            StartGame();
        }
        else if(Input.GetKeyDown(KeyCode.P))
        {
            BackToMenu();
        }
        else if(Input.GetKeyDown(KeyCode.Q))
        {
            GameOver();
        }
    }

Es excelente tener este game manager que te ayude a saber en que estado se encuentra el juego, lo encuentro muy organizado y muy 煤til para no confundirnos demasiado con el c贸digo que estamos creando.
Gran curso

Yo prefiero usar la tecla 鈥渆nter鈥 o 鈥渋ntro鈥 en el teclado, esta se llama 鈥渞eturn鈥 dentro de las keycode.

if (Input.GetKeyDown(KeyCode.Return))
        {
            StartGame();
        }

Jejejejje, el Profe aun no ha hecho su tarea despu茅s de varios videos, no ha hecho que el personaje deje de avanzar solo y pueda voltear a los lados.

Una manera de entrar en modo menu o regresar a inGame.

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.P) && currentGameState == GameState.inGame)
        {
            BackToMenu();
        }
        else if (Input.GetKeyDown(KeyCode.P) && currentGameState == GameState.menu)
        {
            StartGame();
        }
    }

As铆 quedar铆a seg煤n la explicaci贸n:

public void StartGame(){
SetGameState (GameState.inGame);
}
public void GameOver(){
SetGameState (GameState.gameOver);
}
public void BackToMenu(){
SetGameState (GameState.menu);
}
private void SetGameState(GameState newGameSate){
if( newGameSate== GameState.menu){
} else if(newGameSate== GameState.inGame){
controller.StartGame();
}else if(newGameSate==GameState.gameOver){
}
this.currentGameState = newGameSate;
}

Genial