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

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de C# para Videojuegos

Curso de C# para Videojuegos

Juan Gabriel Gomila

Juan Gabriel Gomila

Enemigos móviles: programando que fire al chocar

49/53
Recursos

Aportes 9

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

tengo un problema con el prefab del enemigo, es que cuando uno el prefab del Level_Block_0 con el del enemigo y le doy guardar cambios psss a la final no me guarda correctamente porque le doy al simulador y el enemigo me sale en una cordenada distinta a la que le coloque, pense que era problema del prefab del enemigo asi que la borre y la hice denuevo pero a la final vuelve a pasar D= que hago ???

En el título dice fire en vez de gire, se entiende pero sugiero cambiarlo 😃

Un detalle que no se mencionó, me di cuenta en mi juego que por como está programado, los enemigos rebotan con las Exit Zone, por lo que tuve que agregar un nuevo Tag para éstas y en el código las coloqué de la siguiente manera:

        if(collision.tag == "Coin" || collision.tag == "ExitZone")
        {
            return;
        }```

Con eso evitamos el WTF que en el juego veamos al enemigo cambiar de sentido porque si.

Agregué el TAG de “Coin” a las pociones para que pasara por encima en ese caso también, claro otra opcion seria colocarle diferente TAG (o cambiarlo por “collectables”?) para lograr el mismo efecto.

Si a alguien le sirve, yo le agregue 2 condicionales dentro de las condicionales para que según la distancia cambie su movimiento sin necesidad de hacer colisión con algo mas.

Otra forma de que el enemigo gire es con:

if (collision.gameObject.layer == LayerMask.NameToLayer("Ground"))
        {
            facingRight = !facingRight;
        }

Personalmente preferí esta forma a la del profesor ya que aquí específicamente realiza su acción con aquellos que estan en el layer “Ground” (si en algún futuro queremos crear otra etiqueta que no sea coin o player, con el método del profe girarían al chocar por la forma en que se programó. De hecho a algunos ya les giraba con elementos como el exit zone)

Que importante es la nomenclatura en C# por favor. Mi enemigo colisionaba con la moneda, revisando el código me di cuenta que en el condicional de la colisión con la moneda, no escribí coin con C mayúscula, por lo tanto mi enemigo pasaba del tema y chocaba con ella.

Podria haber quedado con un CASE??

Colisión enemigo

https://drive.google.com/file/d/1ZL8H9-AEdcyQ7yIvj9dHB8j80B5W3CBX/view?usp=sharing```