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

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
17 Hrs
38 Min
18 Seg
Curso de C# para Videojuegos

Curso de C# para Videojuegos

Juan Gabriel Gomila

Juan Gabriel Gomila

La zona de muerte

21/53
Recursos

Aportes 15

Preguntas 4

Ordenar por:

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

TIPOS DE TRIGGERS:

  • OnTriggerEnter2D: Lo utilizamos para detectar cada vez que algún elemento tiene contacto con zona de la muerte.
  • OnTriggerStay2D: Lo utilizamos para detectar si algún elemento se mantiene dentro de la zona de la muerte, lo podemos utilizar para restar puntos y vidas a nuestro personaje cuando esta en contacto con el fuego, por ejemplo.
  • OnTriggerExit2D: Lo utilizamos para detectar cuando algún elemento sale o deja de tener contacto con la zona de la muerte.

En el caso de nuestro videojuego utilizamos OnTriggerEnter2D para detectar cuando el personaje deja de tener contacto con las plataformas y alcanzar a visualizar la animación de muerte del personaje.

Otra forma de llamar a un método de un script de otro GameObject, es usando el método SendMessage que recibe como argumento un String con el nombre del método

private void OnTriggerEnter2D(Collider2D col){
		if(col.tag == "Player"){
			col.SendMessage ("Die");
		}
	}

Se puede llamar directamente del Collider2D o del gameObject sin problema

private void OnTriggerEnter2D(Collider2D col){
		if(col.tag == "Player"){
			col.gameObject.SendMessage ("Die");
		}
	}

Otro dato, es que si el método necesitara que se le pase argumentos, se puede hacer de esta manera

col.SendMessage ("NombreMetodo",argumento1, argumento2);

jajaja cierra y abre visual studio como si nada, el mío demora 3 horas en hacerlo

Una forma más eficiente de comparar una Tag en Unity es utilizando el método CompareTag:

    private void OnTriggerEnter2D(Collider2D collision) {

        if (collision.CompareTag("Player"))
        {
            PlayerController controller = collision.GetComponent<PlayerController>();
            controller.Die();
        }
    }

GameOver del player al caer en un collider con trigger:![](

Alguien sabe por que no me aparece el estado gameover cuando mi personaje pasa por el killzone ? no me sale ningun error

En versiones actuales es preferible usar

collision.CompareTag(/*nombre del tag*/)

ya que al usar .tag == visual te dice que es una funcion insegura

Estilo Mario

Para poder mover el GameObjetc corrspondiente al GameManager y a la Kill Zone, basta con utilizar las teclas de acceso rápido del Transform y os saldrá el eje X e Y como a Juan Gabriel. En este caso las teclas son “W”, “E”, “R” y “T”.-

Como en clases anteriores implementé Singleton en PlayerController, para ecceder al método Die quedó así

private void OnTriggerEnter2D(Collider2D collision)
    {
        if(collision.tag == "Player")
        {
            PlayerController.sharedPlayer.Die();
        }
    }

Is Trigger es un disparador de evento, es decir, no es necesario que se atraviese la zona (el collider en este caso).
.
Es suficiente con tocar la zona para desencadenar el evento (cambio a estado Game Over, en este caso).

creamos un collide2d y decimos que dispara un evento (is trigger)

Sin querer puse un BoxCollider en vez de un BoxCollider2D 20 min buscando el error.

Usualmente usamos un collider con el trigger activado.
Piénsalo como:
Una región en el espacio en donde va a ocurrir algo cuando es atravesada.