El cazador
Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 50 de 85.
En este capítulo se crea un pequeño juego, Catch the Star, con una característica por lección: una estrella cae, deslizas un receptor a izquierda y derecha por debajo de ella, cada captura suma puntos y hace que la siguiente estrella caiga más rápido, y tres fallos terminan el juego. Todo está en un solo script, Catcher, en el receptor. La primera característica es el movimiento: el receptor se desliza con las teclas de flecha y nunca se sale del suelo.
La tarea de mantener un número dentro de unos límites se realiza con Mathf.Clamp(value, min, max). Devuelve min cuando el valor es menor que min, max cuando es mayor que max y, en caso contrario, el propio valor. Esta cámara sigue al jugador torre arriba, pero su altura se mantiene entre 2 y 12:
[SerializeField] private Transform player;
void Update()
{
float y = Mathf.Clamp(player.position.y, 2f, 12f);
transform.position = new Vector3(transform.position.x, y, transform.position.z);
}Clamp devuelve un número nuevo y no cambia nada por sí solo, así que asigna el resultado. Aplica Clamp después de todos los cambios del fotograma y antes de volver a asignar la posición, y ningún fotograma mostrará el objeto más allá de su límite.
Desafío
IntermedioDale movimiento al receptor, la barra azul.
- En
Update(), copiatransform.position.xenfloat xy luego suma o restaspeed * Time.deltaTimesegún la flecha que mantengas pulsada. - Mantén el receptor de 2 unidades de ancho en el suelo (x de -5 a 5):
x = Mathf.Clamp(x, -4f, 4f);. - Vuelve a escribir
xentransform.position, conservando y y z.
Pulsa «Jugar» y mantén pulsadas las flechas: se detiene en los bordes. Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
void Update()
{
// Flechas: desliza el catcher a lo largo de x a speed unidades por segundo.
// Mantén todo el catcher sobre el suelo (x de -5 a 5, el catcher tiene 2 unidades de ancho).
}
}
Todas las lecciones de Fundamentos de scripting en Unity
1Conceptos básicos de C# en Unity
Hola, UnityVariablesLos decimales necesitan una fTexto en la consolaVariables que recuerdanIf y ElseComparar númerosRepaso: Recolector de monedas7Bucles y métodos
Repetir con forBucles dentro de buclesEscribir un métodoMétodos que respondenArraysRepaso: escalera10Encontrar cosas
Buscar por nombreEtiquetasBuscar por tipoLas referencias vencen a FindEl null de UnityRepaso: moneda más cercana13Proyecto: Esquiva los bloques
El corredorBloques desde el cielo2Haz que se mueva
Coloca el cuboMuévelo en cada fotogramaGira cada segundoDirige con las teclasRepaso: conduce el cubo5Vectores
Sumar vectoresDireccionesEspacio local y mundialVelocidad diagonalDistancia entre objetosVector3 es una estructuraRepaso: piloto de dron8GameObjects y componentes
Referencias en el InspectorObtener un componenteComponentes faltantesAñadir un componenteRequireComponentMostrar y ocultarRepaso: interruptor de luz3El Inspector
Campos del InspectorSerializeFieldFloats y MathfAtributos del InspectorRepaso: Ascensor6Transformaciones y jerarquía
Padres e hijosIza la banderaEscalaMira las cosasMuévete hacia un puntoRepaso: Luna en órbita9Proyecto: Atrapa la estrella
El cazadorUna estrella fugaz12El ciclo de vida de un script
Awake y StartUpdate y LateUpdateOnEnable y OnDisableEl orden del ciclo de vidaRepaso: registrador del ciclo de vidaPractica por tu cuenta: Playground de Unity