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

Herramientas de debugging visual

11/53
Recursos

Aportes 19

Preguntas 6

Ordenar por:

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

Apuntes
Dubug: modo de prueba, poder probar cosas
DrawRay: dibujar un rayo
this.transform.position: empezar desde el centro del personaje
Vector2.down: Hacia donde quiero el rayo, hacia abajo(down)
1.5f :para establecer el limite del rayo:
Color.red: color

Discúlpenme pero me tomé la tarea de hallar la precision exacta, y lo hice con todo el Zoom que Unity me permitia, y pues con un valor de: 1.276363f logre la precision.

Los Gizmos son una herramienta de Unity que nos ayudarán a gestionar los parámetros de configuración del salto y cualquier otra acción de nuestro personaje de forma visual, son una especie de líneas que podemos ver si entramos al modo de debugging y en este caso las vamos a utilizar para calcular la distancia entre el centro del personaje y la tierra 🤓.

Encontre una forma mas dinámica de sacar la altura necesaria
primero debemos instanciar el Collider(en mi caso fue un capsule) de donde vamos a sacar las medidas.

CapsuleCollider2D colliderPlayer;
  void Awake()
    {
        rigidBody = GetComponent<Rigidbody2D>();
        colliderPlayer = GetComponent<CapsuleCollider2D>();
    }

luego sacamos la altura de el collider u o dividimos en 3, ya que la altura del collider toma toda su altura y solo necesitamos del centro para abajo, no lo dividimos en dos, ya que nos queríamos cortos

height = colliderPlayer.size.y/3;

luego remplazamos en valor por el height

Debug.DrawRay(this.transform.position, Vector2.down*height, Color.magenta);

Physics2D.Raycast(this.transform.position, Vector2.down, height, groundMask);

Con una longitud de RayCast en 1.315f me va bastante preciso 😄

Platzi debería sacar un curso de física y matematica aplicada en videojuegos >:)

Aun no se diferenciar muy bien que tipos de código se colocan en Start o Update. Alguien me puede explicar por favor :3

Bueno mi enfoque para tener presicion fue no agarrar el centro, sino la parte inferior, como tenemos el centro y la parte superior, solo calcule la diferencia en el eje y para la posicion y el codigo me quedo asi:

bool IsTouchingTheGround()
{
	//Se obtiene la posicion del centro del personaje
	Vector2 position = transform.position; 

	// Se actualiza la posicion Y restandole la mitad de la altura del personaje
	position.y -= (transform.up.y - transform.position.y) / 2; 
	
	// Se indica una cantidad muy pequeña basicamente es un punto
	var distance = 0.001f; 
	
// Esto es para verlo en Unity
	//Debug.DrawRay(position, Vector2.down * distance, Color.red); 
	
	// Devuelvo si el rayo encontro o no un colaider de la groundMask
	return Physics2D.Raycast(position, Vector2.down, distance, groundMask);
}

si creamos una variable publica para la distancia del rayo podemos manipularlo desde el inspector.(solo recuerden que en modo juego no se guardan los cambios, asi que anoten el numero que mas les agrade y apliquenlo en modo edición.)

En mi caso, me gusta tener los Gizmos visibles aun fuera del PlayMode, por ello uso:

/// <summary>
    /// Allows to draw Gizmos on Scene mode without hit Play
    /// Permite dibujar los gizmos en la escena sin presionar Play
    /// </summary>
    private void OnDrawGizmos()
    {
        Debug.DrawRay(transform.position, Vector2.down * groundDistance, Color.yellow); //Gizmo draw to check ground distance
    }

Cada vez aprendo más en este curso que me será de utilidad en un futuro muy cercano.

Por que solo me aparece la linea en la pestaña Scene y no en Game ?

Un truquito para ver qué dato poner, cuando de click al player y en el inspector buscan el collider2D, ahí sale una opcion que dice SIze y entonces solo tienen que poner el valor que les salga en X

Uso de Gizmos

Aqui el gizmo![](

Cada paso que damos es un gramo más que entiendo cómo funciona el motor y los códigos en sí.

siiii ahora amo màs la fisica

Genial