Menu
CoddyTech

Lancement

Leçon 2 sur 19 du cours Jeu Unity : casse-briques de Coddy.

La balle reste sur la raquette jusqu’à ce que le joueur la lance. Jusque-là, Update() la place au-dessus de la raquette à chaque image, de sorte qu’elle va partout où va la raquette, et un bool mémorise si elle s’est envolée :

void Update()
{
    if (launched) return;
    transform.position = paddle.position + Vector3.up * 0.5f;
}

Le Rigidbody de la balle n’est pas soumis à la gravité, donc une vitesse définie une seule fois la maintient en ligne droite. wasPressedThisFrame est vrai uniquement à l’image où une touche est enfoncée : lisez-le donc dans Update(). Pour voler à une vitesse exacte dans n’importe quelle direction, donnez à la direction une longueur de 1 unité avec .normalized, puis multipliez-la : new Vector3(3f, 4f, 0f).normalized * 10f vole à 10 unités par seconde.

challenge icon

Défi

Facile

La balle reste sur la raquette jusqu’à ce que la barre d’espace la lance.

  1. Dans Ball, ajoute bool launched; et public void Launch(Vector3 direction) : launched = true; et rb.linearVelocity = direction.normalized * speed;
  2. Dans Update(), retourne si la balle a été lancée ; sinon, place la balle à paddle.position + Vector3.up * 0.5f.
  3. Quand la barre d’espace wasPressedThisFrame, appelle Launch(new Vector3(0.3f, 1f, 0f)).

Appuie sur « Jouer », déplace la raquette, puis appuie sur la barre d’espace : la balle s’envole et s’arrête contre le premier mur (le rebond viendra ensuite). Puis clique sur « Vérifier ».

Essayez vous-même

using UnityEngine;
using UnityEngine.InputSystem;

public class Ball : MonoBehaviour
{
    public Transform paddle;
    public float speed = 9f;

    Rigidbody rb;

    void Awake()
    {
        rb = GetComponent<Rigidbody>();
    }

    // Ensuite : la balle reste sur la raquette jusqu’à ce que Space la propulse.
}

Toutes les leçons de Jeu Unity : casse-briques

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