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.
Défi
DifficileÉcris le canon : vise-le, puis tire cinq boulets.
- Dans
Update(), ajouteInput.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTimeàangle, limite sa valeur de 10 à 60, et définistransform.rotation = Quaternion.Euler(-angle, 0f, 0f);. - Lorsque la touche Espace est pressée et que
balls > 0, créeballPrefabàtransform.position + transform.forward, puis appliqueAddForce(transform.forward * power, ForceMode.Impulse). - Retire 1 à
ballset affiche"Balls left: " + ballsdans 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
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 à rebours7Rotation
Angles d’EulerQuaternionsRegardez dans la direction où vous vous déplacezTourner en douceurRécapitulatif : tourelle10Projet : Évasion de l’arène
L’arèneLes chasseurs2Collisions
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 à ramasser3Déclencheurs
Colliders déclencheursOnTriggerEnterObjets à ramasserLes caisses gardent le resteZones mortellesEntrée et sortieRécapitulatif : clé et porteEntraînez-vous par vous-même : Playground Unity