No entendi nada jajaja. Existe un curso de scripts ?
Conocer el motor de juegos Unity en 3D
¿Qué vamos a aprender? Historia y evolución de los motores de videojuegos
¿Qué hay detrás de un videojuego? Arte, narrativa, mecánicas, sistemas
Instalación de Unity y Unity Hub
Iniciando nuestro proyecto en Unity
Mundo tridimensional: cómo funcionan los gráficos en una computadora
Mundo tridimensional: cómo procesa los movimientos la computadora
Creando nuestro terreno: importando paquetes y assets del asset store
Importando los standard assets para importar vegetación
Ajuste de cámara de nuestro terreno
Texturizando y agregando vegetación a nuestro terreno
Creando nuestro controlador de FPS
Creación del controlador de nuestro FPS
Programando nuestro script de mira
Revisión del código y bugfixing
Control y movimiento del personaje
Importando nuestra arma a Unity
Programando el comportamiento de nuestra arma con Raycast
Cómo funcionan los colliders
Creación de enemigos estáticos
Terminar los enemigos
¿Cómo continuar tu ruta de aprendizaje profesional?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Programar el comportamiento de la mira de un personaje en videojuegos es una tarea esencial para lograr una experiencia inmersiva y fluida. El manejo adecuado de sensibilidad y rotación para los movimientos puede marcar la diferencia entre un juego bien ejecutado y uno sin pulir. En esta guía, desglosaremos paso a paso cómo ajustar estos aspectos en Unity para crear un funcionamiento adecuado en tu personaje.
Para comenzar, es indispensable declarar ciertas variables en tu script que facilitarán el manejo de la sensibilidad y rotaciones. Inicialmente, se requiere definir una variable flotante para la sensibilidad de movimiento de la mira:
public float sensitivity = 100f;
Esta variable determina con qué rapidez o lentitud la mira responde a los movimientos del mouse o joystick. La sensibilidad debe ajustarse a las preferencias del jugador, ya que algunos prefieren una mayor sensibilidad para movimientos más rápidos, mientras que otros optan por menos para tener más precisión y control.
Además, requerimos declarar un Transform
para nuestra posición:
public Transform player;
Y una variable para la rotación en el eje x:
private float xRotation = 0f;
Estas variables iniciales configurarán el juego para responder adecuadamente a la entrada del jugador desde el comienzo.
La función Update
, es indispensable para manejar la lógica que se repetirá cada frame. Te guiaré en los pasos necesarios para manejar esta lógica:
Capturar el movimiento del mouse: Unity ofrece una función llamada Input.GetAxis
que facilita obtener la dirección del movimiento en ambos ejes del mouse:
float mouseX = Input.GetAxis("Mouse X") * sensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * sensitivity * Time.deltaTime;
Actualizar la rotación: Usa el valor del mouse para ajustar la rotación en el eje x y limitar el ángulo de visión vertical. Esto se realiza utilizando la función Mathf.Clamp
:
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -75f, 75f);
Aplicar la rotación al player: Se debe configurar el Transform
del player para rotar usando Quaternion
:
transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
player.Rotate(Vector3.up * mouseX);
Esta configuración permite que el personaje no solo gire la cabeza para mirar hacia arriba y abajo, sino también de lado a lado eficientemente.
Un paso crucial al programar la cámara es asegurarse de que el cursor del mouse no interfiera con el juego bloqueándolo en el centro de la ventana del juego:
Cursor.lockState = CursorLockMode.Locked;
Este ajuste evita que el cursor pueda salir de la ventana del juego y que los movimientos de la cámara sean precisos y centrados.
Al seguir estos pasos, tendrás un script funcional que permite una experiencia de juego fluida y receptiva con respecto a los movimientos de la cámara y el personaje. Continúa explorando más conceptos en Unity para mejorar aún más tu proyecto. ¡El mundo del desarrollo de videojuegos es vasto y lleno de oportunidades para aprender!
Aportes 14
Preguntas 9
No entendi nada jajaja. Existe un curso de scripts ?
no me aparecen highlights en el codigo
Para el que no entendió el código.
Para aquellos que no quieren pagar o descargar la prueba de Visual Studio, pueden descargar VS Code totalmente gratis y no llega ni a los 100 megas de peso, y dotNet como compilador.
Linea x linea el mismo codigo de Brackeys en Youtube :rofl
Si no les sale el menu de atajos cuando estan codeando en visual studio cosas del unity, lo que tienen que hacer es ir al editor de unity, en edit, buscar el menu de preferences y ahi en external tools, escoger el visual studio como editor
Aquí explican un poco mejor la función del deltaTime, por si a alguien le interesa. Es algo que se usa mucho y es importante saber por qué:).
https://www.youtube.com/watch?v=Gcoj3llfzSw&t=83s
Tengo un problema y cunado coloco el código no me sirve el asistente alguien me podria ayudar porfavor

{
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update()
{
float mouseX = Input.GetAxis("Mouse X") * Sensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * Sensitivity * Time.deltaTime;
xRotation = -mouseY;
xRotation = Mathf.Clamp(xRotation, -90, 75f);
transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
player1.Rotate(Vector3.up * mouseX);
}
}
holaaa!! para los que cuando escriban el codigo por ejemplo el “Transform” y les salga en blanco como texto nromal, es decir, VS code no lo esta reconociendo, asi como me paso a mi, solo deben de colocar el visual studio code como editor predetermido en : EDDIT + PREFFERENCES + EXTERNAL TOOLS y le pinchan donde dice external scrip editor y lo cambian a su version de VS code y listo 😄
No me gusta quejarme pero que clase tan mala… Las explicaciones son totalmente insuficientes. Despues de haber pasado clases completas de temas casi irrelevantes ahora mete un monton de conceptos sin ninguna claridad ni orden… Es terrible que uno tenga que ir a google a buscar aclaraciones cuando se supone que este contenido pagado tiene que ser mejor que el contenido gratuito que se encuentra en internet.
Genial
yo si entemdy
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?