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

Curso de C# para Videojuegos

Curso de C# para Videojuegos

Juan Gabriel Gomila

Juan Gabriel Gomila

Programando funciones en C# y Unity: Jump

9/53
Recursos

En esta clase vamos a programar el salto de nuestro personaje, por defecto, Unity nos permite usar los métodos Start y Awake para preparar las funciones necesarias antes de empezar el juego, con el método Awake trabajamos en el frame 0, justo antes del render de los elementos visuales, mientras que, el método Start es invocado inmediatamente el entorno del videojuego esta preparado para empezar.

En nuestro caso, vamos a utilizar el método Awake para configurar las variables privadas y evitar un pequeño retraso en los primeros momentos del juego.

Aportes 27

Preguntas 13

Ordenar por:

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

GetComponent : busca otro componente del mismo GameObject
componentes : Collider, Rigidbody, etc

Existen dos tipos de fuerza que se pasan a RigidBody2D.AddForce, ForceMode2D.Force y ForceMode2D.Impulse. Force: es una fuerza constante (empujar un objeto). Impulse: Es aplicar la fuerza esa fuerza en un instante (Lanzar una pelota, brincar).

Recordar que las 2 “pleca” (||) van dentro de un mismo paréntesis
(Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0))
Tuve el error de haber cerrado paréntesis y al revisarlo pude arreglarlo 😄

por que la fuerza es mayor con la tecla espacio que con el boton del mouse sin cambiar otro parametro?

no deberian ser iguales??

Logica de salto:
Conceptos segun el contexto:
rigidBody: es l que controla la fisica del personaje
Vector2: Lo usamos por que como estamos en 2d
necesitamos dos vectores

Le decimos a el rigidBody que vengan y que con el AddForce agregue fuerza entonces le decimos donde tiene que aguegar la fuerza por lo que ponemos vecctor2 y up (Up significa hacia arriba en español) y lo multiprimcamos por Jump force para que el personaje salte, e inpulsamos la fuerza con impulso

Hay pequeñas pepitas de oro aquí y allá, que enriquecen este curso. 😃

Fun fact: si lanzamos nuesto personaje lo suficientemente alto, tendrá una velocidad de caída tan grande que romperá los colisionadores (colliders), así que desbloqueamos el épico bug de atravesar paredes 😄

Un consejo, utilizar la siguiente función para cuando el juego no funciona como se desea

debug.log("Mensaje");

Con esta función puedes imprimir un mensaje en la consola, en mi caso yo la coloqué dentro del if

if (Input.GetKey(KeyCode.Space) || Input.GetMouseButtonDown(0))
        {
            Jump();
            Debug.Log("Hola"); //Para encontrar errores
        }

Y noté que cuando das un click con el mouse se imprime el mensaje 1 vez, mientras que si lo haces con la barra espaciadora te imprime el mensaje como 5 veces
A mí me ha funcionado para encontrar muchos tipos de bugs como este c:

Copie el codigo de la pestaña de archivos y enlaces y mi personaje sigue sin poder saltar, no se que me falta.

Scripts Jump: el personaje se sale de la escena, corrección proximo video.![](

Nota: Si renombran el script es probable que en la linea public class nombre_archivo : MonoBehaviour la parte que dice nombre_archivo no se configure y no te deje usar el script. O al menos a mi me paso :c

Cual es el curso básico al que e C# al que siempre hace mensión? para estudiarlo también
PD: Muy Buen Profesor (Y) 10/10

Para poner las barras verticales " | " , me funciono ALT + 124

Experimente un poco y cuando aplico este método el personaje va para hacia delante solo cuando salta como una pelota de ping pong
void FixedUpdate()
{
rb.AddForce(Vector2.right * Correr, ForceMode2D.Force);
}

Variable rigidBody en la clase anterior se cambio a playerRigidbody para ser mas especifica. pero en esta clase vuelve rigidBody

El error se genera a que en el if escribió getKey para la tecla de espacio, y getMouseButtonDown para el click, al escribir “getKey” hace que se ejecute la función jump mientras se mantenga presionada la tecla, en cambio si se usará getKeyDown, solo saltaría cuando se presiona la tecla, como en el caso del click

No me quedo muy claro por qué y como es que utilizamos la variable de rigidBody en el metodo jump.

Tengo un pequeño problema, y es que en Visual Studio Code hay algunas lineas de código que no se me colorean, tampoco se me da el autocompletado en esas líneas, la vrd no sé porque pasa esto 😦

Al momento de meter el código que va explicando el profesor me aparece este error al momento de meter este script al jugador
error CS0246: The type or namespace name ‘Ridgibody2D’ could not be found (are you missing a using directive or an assembly reference?

¿alguna sugerencia? por favor

Consejo de un inexperto: tengan bien presente que el script esté asociado al personaje (arrastren el script al inspector del personaje)

no me sale la opcion de keycode

Wow, más fácil de lo que pensaba!

Excelente el curso, todo te lo explican detallado.

Explicación fuerzas

Genial

Hmmm se podría de una vez empezar a usar los ejes del Input no? Así de una vez tenemos un formato “universal” para otras plataformas que no son en computador para el juego