Alcance del cañón
Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 66 de 71.
Un cañón se encuentra en un extremo de un campo de tiro, y tres blancos se deslizan de un lado a otro por el campo a distintas distancias. Inclina el cañón hacia arriba y hacia abajo para alcanzar cada distancia, y calcula el momento de cada disparo para que coincida con el instante en que un blanco cruza la línea de fuego. Una bola que alcanza un blanco lo derriba y se consume; cualquier otra cosa que choque con un blanco lo deja intacto. Los blancos son cuerpos cinemáticos, por lo que los impactos nunca los empujan, y el cañón tiene cinco bolas.
Escribe dos scripts: Cannon en el cañón y Target en cada blanco.
Desafío
DifícilEscribe el cañón: apúntalo y después dispara cinco bolas.
- En
Update(), sumaInput.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTimeaangle, limítalo entre 10 y 60, y establecetransform.rotation = Quaternion.Euler(-angle, 0f, 0f);. - Al pulsar la barra espaciadora, si
balls > 0, generaballPrefabentransform.position + transform.forwardy aplicaAddForce(transform.forward * power, ForceMode.Impulse). - Resta 1 a
ballsy registra"Balls left: " + balls.
Pulsa «Jugar» y dispara. Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
public class Cannon : MonoBehaviour
{
[SerializeField] private Rigidbody ballPrefab;
[SerializeField] private float angle = 30f;
[SerializeField] private float turnSpeed = 40f;
[SerializeField] private float power = 30f;
[SerializeField] private int balls = 5;
void Update()
{
// apunta con las flechas arriba y abajo, dispara con Space
}
}
Todas las lecciones de Física y jugabilidad
1Cuerpo rígido
Gravedad y masaEmpujar con AddForceSaltar con un impulsoFixedUpdate para físicaVelocidadCuerpos cinemáticosRepaso: plataforma de lanzamiento4Corrutinas
InvocarInvokeRepeating y CancelInvokeTu primera corrutinaBucles en corrutinasDetener corrutinasRepaso: cuenta regresiva10Proyecto: Escape de la arena
La arenaCazadores2Colisiones
OnCollisionEnter¿Qué golpeé?Romper al impactarDe pie sobre el sueloRebote y fricciónFormas de los collidersRepaso: muro destructible5Proyecto: Carrera de Monedas
La pelota rodanteMonedas para recoger3Disparadores
Colisionadores de tipo triggerOnTriggerEnterObjetos coleccionablesLas cajas guardan el restoZonas letalesEntrada y salidaRepaso: llave y puertaPractica por tu cuenta: Playground de Unity