Menu
CoddyTech

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.

challenge icon

Desafío

Difícil

Escribe el cañón: apúntalo y después dispara cinco bolas.

  1. En Update(), suma Input.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTime a angle, limítalo entre 10 y 60, y establece transform.rotation = Quaternion.Euler(-angle, 0f, 0f);.
  2. Al pulsar la barra espaciadora, si balls > 0, genera ballPrefab en transform.position + transform.forward y aplica AddForce(transform.forward * power, ForceMode.Impulse).
  3. Resta 1 a balls y 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

Practica por tu cuenta: Playground de Unity