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

Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷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:

3D
13H
55M
37S
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 32

Preguntas 18

Ordenar por:

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

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).

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

Recordar que las 2 鈥減leca鈥 (||) 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??

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:

Hay peque帽as pepitas de oro aqu铆 y all谩, que enriquecen este curso. 馃槂

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 鈥楻idgibody2D鈥 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 鈥渦niversal鈥 para otras plataformas que no son en computador para el juego

// GetComponent busca otra componente del mismo gameObjet. En este caso, el GameObjet es nuestro player. Por lo tanto, buscamos el componente RigidBody2D dentro del gameObjet de nombre Player. Esto permite que podamos usar la variable rigidBody dentro del c贸digo.

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 馃槃

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

隆Hola! Si a alguien le pasa su editor de c贸digo visual studio 202X no le autocompleta, debe:

鈥 ir al inicio de Windows > visual studio installer > modificar y luego descargar el paquete de 鈥淒esarrollo de Juego con Unity鈥.

鈥 Luego de esto debe ingresar a Unity > Preferences > External Tools > External Script Editor y seleccionar de la lista 鈥淢icrosoft Visual Studio 202X鈥 > dar clic en 鈥淩egenerate project files鈥 > cerrar esa ventana.

鈥 Despu茅s van a ir a su archivo de script en unity y le dar谩n doble clic, esto abrir谩 el Visual Studio 202X, esperan que cargue, van a buscar en el explorar de soluciones del VS su archivo de script, lo abren y en la parte superior dar谩n clic a 鈥溾柖 Asociar a Unity鈥

Saludos.

batalle bastante sobre todo por que habia palabras que las escribia con minusculas y la palabra tenia que ir primera letra en mayuscula

y me salio pero al final cuando le pisaba space saltaba mucho lo bueno que vi todo el video y es un error para la proxima clase

para usar vscode con unity sigan esta guia

Tengo una serie de problemas que me figuran en la consola debido al script. Algunos de ellos:

  1. FMOD failed to initialize the output device: error initializing output device (60).
  2. Error: the name Getcomponent doesnt exist in the current context.
  3. UnityEngine.Input doesnt contain a definition for Getkey.
    Y adicional en la ventana del inspector sale un alert que dice : No Monobehaviour scripts un the file, or their names don鈥檛 Mach the file name.
    Alguna soluci贸n o aporte para solucionarlo desde ya muchas gracias 馃檹馃徎

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 鈥済etKey鈥 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 馃槮