Aterriza o falla
Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 85 de 85.
Este desafío termina el juego de la torre y la primera sección del curso: una grúa, un bloque que cae y una prueba de aterrizaje con Mathf.Abs.
Desafío
DifícilHaz que cada bloque aterrice en la pila o caiga al vacío.
- Cuando el bloque que cae esté a una altura y de
top+ 1 y a menos de 1 de la x detop, establece su y exactamente en ese valor, conviértelo entop, vacíafallingy registra"Stack: " + count. - Si no, cuando esté por debajo de y =
-3, destrúyelo, vacíafallingy registraMissed!.
Pulsa «Jugar» y apila bloques: cada aterrizaje registra la altura. Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
public class Crane : MonoBehaviour
{
[SerializeField] private GameObject blockPrefab;
[SerializeField] private Transform top;
[SerializeField] private float craneSpeed = 3f;
[SerializeField] private float craneEdge = 4f;
[SerializeField] private float fallSpeed = 7f;
private float direction = 1f;
private Transform falling;
private int stack;
void Update()
{
transform.position += new Vector3(direction * craneSpeed * Time.deltaTime, 0f, 0f);
if (transform.position.x > craneEdge) direction = -1f;
if (transform.position.x < -craneEdge) direction = 1f;
bool drop = Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0);
if (drop && falling == null)
{
Vector3 spot = new Vector3(transform.position.x, transform.position.y - 1f, 0f);
falling = Instantiate(blockPrefab, spot, Quaternion.identity).transform;
}
if (falling != null)
{
falling.position += Vector3.down * fallSpeed * Time.deltaTime;
// Aterrizar sobre la pila: la próxima lección.
}
}
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
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 luz11Prefabs y generación de objetos
Prefabs e InstantiateGenerar objetos con un temporizadorGenerar objetos en una cuadrículaListas de objetosDeshacer el más recienteDestruirGeneración aleatoria de objetosRepaso: fuegos artificiales14Desafíos finales
Imán de monedasCruzar la calleTráfico en la carreteraConstructor de torresAterriza o falla3El 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