Ramón Diego Alberto Benítez
GetComponent : busca otro componente del mismo GameObject componentes : Collider, Rigidbody, etc
Ricardo Chacón García
Gracias, excelente aporte, me sirvio bastante.
Martin Chavez Ceja
de gran ayuda, gracias!
Domina el salto en Unity 2D con C# desde el primer script: diferencias entre Awake y Start, detección de input en Update y aplicación de AddForce al Rigidbody2D con impulso. Con buenas prácticas como delegar en métodos y configurar dependencias al iniciar, evitarás errores típicos como el salto repetido al mantener pulsada la tecla.
¿Qué diferencia a awake de start en Unity?
Al dar Play, ambos se ejecutan, pero en orden distinto. Awake ocurre en el frame 0, antes de renderizar nada, y Start en el frame 1, cuando todo está preparado. Para configurar dependencias privadas, usar Awake es más coherente con el “despertar” del objeto: al iniciar, ya sabe quién es su Rigidbody2D o su Collider.
¿Cómo referenciar rigidbody2d con getcomponent?
using UnityEngine; public class Player : MonoBehaviour { private Rigidbody2D rigidBody; private float jumpForce = 6f; // fuerza de salto void Awake() { rigidBody = GetComponent<Rigidbody2D>(); } }
¿Por qué usar awake para configurar dependencias?
¿Cómo detectar input en update sin errores?
Update se ejecuta hasta 60 veces por segundo si el juego corre a 60 fps. Ahí puedes consultar entradas: teclado con Input.GetKey y ratón con Input.GetMouseButtonDown. Para atender ambas, combina condiciones con el operador lógico OR.
void Update() { if (Input.GetKey(KeyCode.Space) || Input.GetMouseButtonDown(0)) { Jump(); } }
¿Qué teclas y botones admite keycode y mousebutton?
¿Por qué aparece el bug al mantener la tecla?
¿Cómo programar el salto con rigidbody2d y addforce?
La física ya está resuelta por el motor. Solo necesitas aplicar una fuerza hacia arriba al Rigidbody2D. Usa la dirección Vector2.up y la magnitud definida por tu fuerza de salto. Para un salto, el modo correcto es un impulso en un instante.
void Jump() { rigidBody.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); }
¿Qué dirección y magnitud definen el salto?
¿Fuerza continua o impulso?
¿Tú cómo prefieres combinar teclado y ratón para saltar y por qué? Comparte tu enfoque y dudas en los comentarios.
Ramón Diego Alberto Benítez
GetComponent : busca otro componente del mismo GameObject componentes : Collider, Rigidbody, etc
Ricardo Chacón García
Gracias, excelente aporte, me sirvio bastante.
Martin Chavez Ceja
de gran ayuda, gracias!
Luis Eduardo Serrano Bernal
Luis Felipe Muñoz Martinez
No me aparece el autocompletar en VS, alguien sabe como puedo activarlo?
Owen Enríquez
ctrl + space
JUAN DAVID ORTIZ CORREA
¡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.
Habraham Sanchez Farias
si me sirvio, gracias.
Thomas Antonio Contreras Lan
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 :D
Néstor Arellano
Hay pequeñas pepitas de oro aquí y allá, que enriquecen este curso. :)
Luis Eduardo Rodríguez Ramírez
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:
Antonio Demarco Bonino
Consejo de un inexperto: tengan bien presente que el script esté asociado al personaje (arrastren el script al inspector del personaje)
Líam Ayelén Acosta Muñoz
no me sale la opcion de keycode
Luis Rodrigo Alvarez Herrera
por que la fuerza es mayor con la tecla espacio que con el boton del mouse sin cambiar otro parametro?
no deberian ser iguales??
José A Azocar
Es que el teacher dejo el espacio pegado por eso el impulso pero si dejas el botón del mouse pegado seria el mismo efecto
Wilmer David Cedeño Mendoza
La razón es que utilizo Input.GetKey y no Input.GetKeyDown, como si lo hizo con Input.GetMouseButtonDown
giovany osorio
Como seria para el mobile? como seria el getkey? o como se manejaria en ese caso?
Korpi delfin
Te comparto la documentación de Unity donde habla del mobile input :)
Robert Peft
apenas empezaré a adentrarme en todo lo relacionado a la programación, mi sueño es desarrollar videojuegos, pero me gustaría saber si este es el curso correcto para comenzar a programar o me recomiendan algún otro, cómo dije, apenas comenzaré a aprender (:
Jesus Isaac Caicedo Carrero
Hola, veo que nadie ha respondido a tu duda, en mi humilde opinión creo que debes de hacer paso por paso la escuela de videojuegos, la cual tiene todo lo que puedes necesitar.
Gustavo Adolfo López Tovar
Como se a cuantos frame por segundo va corriendo mi juego?
Juan Sebastian Avila
En la pestaña Game, encontraras un botón Stats. Haz clic en él y veras los FPS a los que esta corriendo el juego.
Ricardo García Ortega
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
Gabriel Aguilar
le pusiste al player el componente Rigidbody2d ?
Juan Carlos Torres
Ridgibody2D esta mal escrito, te recomiendo que cheques la guia que hice la clase pasada para poder activar el intelisense en VS.
Luis Alvaro Cárdenas Gómez
Wow, más fácil de lo que pensaba!
Ruben Dario Acosta Valle
Excelente el curso, todo te lo explican detallado.
Williams Vega
Explicación fuerzas
Leonardo Gutierrez
Genial