GetComponent : busca otro componente del mismo GameObject
componentes : Collider, Rigidbody, etc
El personaje y el controlador
Introducción: De la idea al desarrollo
Estructura de carpetas en Unity
Assets, Game Objects y Sprite Atlas
Animaciones desde un sprite map
Animation Controller y Transiciones
Plataformas y gravedad
Física en Unity
El script de control
Programando funciones en C# y Unity: Jump
Detectar el suelo con Raycast
Herramientas de debugging visual
Cambiar las animaciones según los estados
Reto: Terminando nuestras animaciones
Solución del reto
Hacer que el personaje camine
El manager del videojuego
Cómo funciona el Game Manager
El Singleton
El modo de juego
Input manager y juegos multiplataforma
Corrección del Bug del salto
La zona de muerte
Reiniciar la partida
Corrigiendo los bugs al reiniciar nuestro juego
Diseño procedural de niveles 2D
El diseño de niveles a mano
Configurando nuestros assets para el diseño procedural
Generación procedural de niveles
Creando la zona que eliminará bloques del nivel excedentes
Añadir un nuevo bloque de forma aleatoria
La cámara que sigue al jugador
Destrucción de bloques antiguos
Terminando de programar la destrucción de bloques antiguos
Solucionando el salto de la cámara al reiniciar el juego
HUD, menús y gameplay
El canvas en Unity
Uso de botones para crear un menú
La lógica de los menús
Ejercicio: Preparando el menú del juego
Programando el menú del juego
Los coleccionables del juego
Actualizar UI de coleccionables
Iniciando con pociones y maná
Pociones de vida y maná
Programando las barras de vida y maná
Calculando los puntajes con la distancia y el tiempo de juego
La lógica del maná
Enemigos y dificultad
Plataformas móviles
Iniciar movimiento de la plataforma con trigger
Enemigos móviles
Enemigos móviles: preparando nuestro enemigo para girar
Enemigos móviles: programando que gire al chocar
Arreglando el collider de nuestra roca
Programando la condición de muerte del personaje
Añadiendo música de fondo a nuestro videojuego
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
Juan Gabriel Gomila
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 31
Preguntas 18
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
¡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 “Desarrollo de Juego con Unity”.
— Luego de esto debe ingresar a Unity > Preferences > External Tools > External Script Editor y seleccionar de la lista “Microsoft Visual Studio 202X” > dar clic en “Regenerate 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.
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 😄
Hay pequeñas pepitas de oro aquí y allá, que enriquecen este curso. 😃
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:
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
por que la fuerza es mayor con la tecla espacio que con el boton del mouse sin cambiar otro parametro?
no deberian ser iguales??
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
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
// 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
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:
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);
}
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 😦
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?