Golf de billes
Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 62 sur 63.
Du golf avec une bille sur un petit green. La bille commence sur le tee : tu la vises avec les flèches, tu maintiens la barre d’espace pour accumuler de la puissance et tu la relâches pour tirer. Elle roule, rebondit sur les bandes et le bloc au milieu, puis ralentit et, une fois qu’elle est assez lente, s’arrête net. Ce n’est qu’alors que tu peux tirer à nouveau. Une bille qui roule lentement dans le trou y tombe ; une bille qui arrive trop vite passe tout droit par-dessus. Moins tu fais de coups, mieux c’est.
Écris deux scripts : Golf sur la bille et Hole sur le trou.
Défi
DifficileL’inspecteur fournit à Golf pointer (la petite balle jaune), aimSpeed (90), chargeRate (4), maxPower (6) et stopSpeed (0.3). La masse de la bille est de 0.5.
- La visée est un angle autour de y, à 0 au départ (tout droit, +z). La flèche droite la fait tourner vers la droite et la flèche gauche vers la gauche, à
aimSpeeddegrés par seconde. À chaque image, place le pointeur à 1 unité de la bille, dans la direction visée. - La bille est au repos tant que sa vitesse est inférieure à
stopSpeed. À chaque étape physique, une bille au repos est complètement immobilisée : sa vitesse et sa vitesse angulaire sont mises à zéro. - Uniquement lorsque la bille est au repos : maintenir la barre d’espace augmente la puissance à raison de
chargeRatepar seconde, sans jamais dépassermaxPower, et relâcher la barre d’espace propulse la bille avec une impulsion de cette puissance dans la direction visée. La puissance revient alors à 0, et unint strokespublic est incrémenté de 1 et consigné sous la formeStroke 1.
L’inspecteur fournit à Hole sinkSpeed (3).
- Lorsque la bille (l’objet avec le script
Golf) entre dans le trou à une vitesse inférieure àsinkSpeed, consigne son nombre de coups sous la formeIn the cup in 2 strokes!, puis désactive la bille. Une bille plus rapide roule au-delà.
Appuie sur Play et fais entrer la bille dans le trou en aussi peu de coups que possible, puis clique sur Check.
Essayez vous-même
using UnityEngine;
public class Golf : MonoBehaviour
{
public int strokes = 0;
[SerializeField] private Transform pointer;
[SerializeField] private float aimSpeed = 90f;
[SerializeField] private float chargeRate = 4f;
[SerializeField] private float maxPower = 6f;
[SerializeField] private float stopSpeed = 0.3f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
// visez avec les flèches, chargez avec Space, tirez en relâchant la touche, arrêtez-vous quand la balle ralentit
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Physique et gameplay
1Corps rigide
Gravité et massePousser avec AddForceSauter avec une impulsionFixedUpdate pour la physiqueVitesseCorps cinématiquesRécapitulatif : plateforme de lancement4Coroutines
InvoquerInvokeRepeating, CancelInvokeVotre première coroutineBoucles dans les coroutinesArrêter les coroutinesRécapitulatif : compte à rebours2Collisions
OnCollisionEnterQu’est-ce que j’ai touché ?Se briser à l’impactRester au solRebond et frictionFormes des collidersRécapitulatif : mur destructible5Projet : Course aux pièces
La balle roulanteDes pièces à ramasser