Menu
CoddyTech

Portée du canon

Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 66 sur 71.

Un canon se trouve à une extrémité d’un champ de tir, et trois cibles glissent d’un côté à l’autre du champ de tir à différentes distances. Incline le canon vers le haut ou vers le bas pour atteindre chaque distance, et tire au moment où une cible traverse la ligne de tir. Une balle qui touche une cible la détruit et est consommée ; tout autre objet qui heurte une cible la laisse intacte. Les cibles sont des corps cinématiques : les impacts ne les poussent donc jamais, et le canon contient cinq balles.

Écris deux scripts : Cannon sur le canon et Target sur chaque cible.

challenge icon

Défi

Difficile

Écris le canon : vise-le, puis tire cinq boulets.

  1. Dans Update(), ajoute Input.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTime à angle, limite sa valeur de 10 à 60, et définis transform.rotation = Quaternion.Euler(-angle, 0f, 0f);.
  2. Lorsque la touche Espace est pressée et que balls > 0, crée ballPrefab à transform.position + transform.forward, puis applique AddForce(transform.forward * power, ForceMode.Impulse).
  3. Retire 1 à balls et affiche "Balls left: " + balls dans le journal.

Appuie sur « Jouer » et tire. Puis clique sur « Vérifier ».

Essayez vous-même

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()
    {
        // vise avec les flèches haut et bas, tire avec Space
    }
}

Toutes les leçons de Physique et gameplay

Entraînez-vous par vous-même : Playground Unity