Menu
CoddyTech

Campo di tiro del cannone

Fa parte della sezione Fisica e gameplay del percorso Unity di Coddy. Lezione 66 di 71.

Un cannone si trova a un’estremità di un poligono di tiro e tre bersagli si spostano da un lato all’altro lungo il poligono a distanze diverse. Inclina la canna verso l’alto e verso il basso per raggiungere ciascuna distanza e scegli il momento di ogni colpo in modo che un bersaglio attraversi la linea di tiro. Una palla che colpisce un bersaglio lo elimina e viene consumata; qualsiasi altra cosa urti un bersaglio lo lascia indisturbato. I bersagli sono corpi cinematici, quindi i colpi non li spingono mai, e il cannone contiene cinque palle.

Scrivi due script: Cannon sulla canna e Target su ciascun bersaglio.

challenge icon

Sfida

Difficile

Scrivi il cannone: miralo, poi spara cinque palle.

  1. In Update(), aggiungi Input.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTime a angle, limitalo tra 10 e 60 e imposta transform.rotation = Quaternion.Euler(-angle, 0f, 0f);.
  2. Premendo Space mentre balls > 0, genera ballPrefab in transform.position + transform.forward e applica AddForce(transform.forward * power, ForceMode.Impulse).
  3. Sottrai 1 a balls e registra "Balls left: " + balls.

Premi «Gioca» e spara. Poi premi «Verifica».

Provalo tu

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()
    {
        // mira con le frecce su e giù, spara con Space
    }
}

Tutte le lezioni di Fisica e gameplay

Esercitati da solo: Playground Unity