Controles de juego
Los controles de juego convierten un objeto en un personaje que el visitante puede mover: andando, volando o recorriendo un mapa visto desde arriba. Esta página explica cómo configurarlos y para qué sirve cada ajuste.
Qué necesitas
- Un personaje: el objeto que tiene el disparador Game controls.
- Algo sólido que pisar: un suelo con cuerpo rígido y collider.
- Una cámara, o ninguna. Si no eliges una, se usa una cámara integrada.
Añadir controles de juego
Los controles de juego son un disparador, no un paso. Todos los ajustes del controlador están en el disparador.
- Selecciona el objeto que quieres convertir en personaje.
- En el inspector, haz clic en + new component y elige Events.
- Haz clic en + add event.
- Cambia el disparador a Game controls.
- Ajusta los parámetros que se describen más abajo.
- Opcional: añade pasos a las ramas On idle, On move, On run y On jump para reaccionar a lo que hace el personaje, por ejemplo para reproducir una animación.
El controlador existe mientras su objeto está activo. Si desactivas el objeto, el controlador desaparece. Si lo vuelves a activar, el controlador vuelve.
Movimiento
| Ajuste | Qué controla |
|---|---|
| Movement | Walk, Fly o Top down |
| Towards | qué significa «hacia delante»: hacia donde mira la cámara (Camera) o el propio eje de la escena (Axis) |
| Pos. Speed · Run Factor | la velocidad en metros por segundo, y cuánto más rápido corre el personaje con Shift pulsado |
| Pos. Delay | cuánto tarda en alcanzar la velocidad máxima, y en pararse |
| Auto-orient · Rot. Speed | si el personaje se gira hacia donde va, y a qué velocidad |
| Keys | WASD, flechas o ambas |
| Jump | la altura del salto en metros; 0 significa que no salta |
| Air Control | cuánto puede dirigir el visitante al personaje en pleno salto |
| Rst Y-offset | si el personaje cae esta distancia por debajo de su punto de partida, vuelve a colocarse allí |
| Click to move | el personaje camina hasta el punto que toca el visitante |
| Rotate By | girar la vista con el ratón, con las teclas o con ambos |
Imagina que pones medio segundo. El personaje llega entonces a la velocidad máxima en medio segundo. Las cuestas, los baches y la masa lo frenan, y por eso el movimiento se siente físico.
0 significa «lo más rápido posible». Es casi instantáneo, pero no del todo, porque el personaje sigue teniendo masa.
El cuerpo
El controlador le da a tu objeto una cápsula. Así el personaje choca con el mundo en lugar de atravesarlo.
| Ajuste | Qué controla |
|---|---|
| Collider | Capsule o Sphere |
| Size | el radio y la altura, en metros |
| Position | desplaza la cápsula respecto al objeto |
| Mass | con cuánta fuerza empuja el personaje, y cuánto cuesta empujarlo |
| Helper | muestra la cápsula en el editor |
Si el objeto ya tiene su propio cuerpo rígido, el controlador lo conserva y solo lo dirige, usando su masa. Si no lo tiene, el controlador crea uno.
Los suelos y las paredes solo detienen al personaje si tienen cuerpo rígido y collider. El resto de la geometría es solo decorado, y el personaje la atraviesa. → Física
La gravedad viene del espacio, y la altura del salto se mide con ella. Una escena con controles de juego activa la física, aunque el espacio la tuviera desactivada. Sin física, nada se movería.
La cámara que sigue al personaje
| Ajuste | Qué controla |
|---|---|
| Camera | qué cámara sigue al personaje; déjalo vacío para usar una integrada |
| Orient To | seguir mirando al personaje (At target) o mantener un ángulo fijo (Angle) |
| Pos. Delay · Rot. Delay | cuánto se retrasa la cámara, en segundos |
| Up / Down · Left / Right | si la vista puede girar en esa dirección: Yes, No o Limit |
| Limit | cuánto puede girar la vista, en grados |
En el primer fotograma, la cámara memoriza su distancia y su ángulo respecto al personaje, y los mantiene. No tienes que escribir ninguna distancia ni altura. Coloca la cámara donde quede bien en el viewport, y se quedará así.
Cómo se comporta la cámara:
- Primero gira hacia el personaje y después se desplaza. El personaje puede alejarse un poco hacia un lado mientras la cámara solo gira. La cámara se desplaza solo cuando el personaje llega al borde de esa zona. Resulta más natural que una cámara pegada al personaje.
- El retraso cambia el encuadre, no la distancia. La cámara no se queda atrás cuando el personaje acelera. Parecería un zoom no deseado y puede marear.
- La cámara se coloca detrás del personaje mientras este se mueve y el visitante no está girando la vista. Si bloqueas Left / Right o eliges Top down, esto se desactiva.
- Nada tapa la vista. Si algo se interpone entre la cámara y el personaje, la cámara se acerca y después vuelve a alejarse poco a poco. Nunca se acerca a menos de medio metro.
- La rueda del ratón hace zoom, desde un tercio hasta dos veces y media la distancia que ajustaste.
Mientras el controlador maneja una cámara, los controles propios de esa cámara (órbita, vuelo) se ignoran. Si no, los dos se pelearían en cada fotograma.
Controles táctiles y mandos
Los controles en pantalla solo aparecen en pantallas táctiles, así que puedes dejarlos activados.
| Ajuste | Qué controla |
|---|---|
| Touch controls → Enable | muestra un joystick y un botón de salto |
| Rotate By | girar la vista arrastrando por la escena (Drag) o con un segundo joystick (Joystick) |
| Movement stick · Jump button | dónde se coloca cada uno, en una cuadrícula de 3×3 |
| Offset · Button Size | la distancia al borde de la pantalla, y el tamaño en píxeles |
| Visibility | ocultar los controles (Hide); girar deslizando el dedo sigue funcionando |
Un mando funciona sin configurar nada:
- el joystick izquierdo mueve;
- el joystick derecho mira alrededor;
- A salta;
- los botones superiores y los gatillos hacen correr.
Reaccionar a lo que hace el personaje
Las ramas On idle, On move, On run y On jump se ejecutan cuando el personaje cambia lo que está haciendo. Los scripts y los patches reciben el mismo cambio en el mismo momento:
- un script puede escucharlo;
- en un patch, el nodo
on_game_controltiene las salidaspulseystate.
Así puedes reproducir el sonido de las pisadas desde un script mientras las ramas se ocupan de la animación, y los dos van sincronizados.
Seguir sin controlador
Para algo más sencillo, como un enemigo que persigue al jugador, una mascota o el objetivo de una cámara, usa los pasos Follow object, Look at object y Stop following.
Estos pasos mueven el objeto directamente. Por eso no funcionan en un objeto que ya mueve la física. En ese caso, empújalo con impulsos desde un script.
Siguiente: Tarjetas de interfaz — botones, menús y marcadores de puntuación.