Objets à ramasser
Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 17 sur 71.
Un objet à ramasser est un déclencheur doté de son propre script. Lorsqu’un objet entre, l’objet à ramasser vérifie qu’il s’agit du joueur, lui transmet son effet, puis se détruit. Le script du joueur conserve le résultat et fournit une méthode publique pour cela. Ce pack de santé soigne tout objet doté d’un script Health :
// HealthPack.cs
public int amount = 25;
void OnTriggerEnter(Collider other)
{
if (other.TryGetComponent(out Health health) && health.hp < 100)
{
health.Heal(amount);
Destroy(gameObject);
}
}// Health.cs, sur le joueur
public int hp = 50;
public void Heal(int amount)
{
hp = Mathf.Min(hp + amount, 100);
Debug.Log("HP: " + hp);
}other.TryGetComponent(out Health health) vaut false pour une caisse qui glisse sur le pack. Seul un objet doté d’un script Health peut donc le ramasser, et un joueur en pleine santé laisse le pack pour plus tard. Le pack trouve le joueur grâce à other, aucun pack n’a donc besoin d’une référence dans l’Inspector, et un niveau peut en contenir cinquante. Heal est public parce qu’un autre script l’appelle, et la limite à 100 se trouve dans Health, le seul endroit qui gère hp. Destroy(gameObject) supprime le pack ; Destroy(other.gameObject) supprimerait le joueur.
Défi
FacileFais en sorte que les caisses de munitions rechargent le Blaster (ammo 4, maxAmmo 10).
- Dans
Blaster.cs, ajoutepublic int AddAmmo(int amount):int taken = Mathf.Min(amount, maxAmmo - ammo);, ajoute cette valeur àammo, affiche"Ammo: " + ammodans le journal et renvoietaken. - Dans
AmmoCrate.cs, lorsqueother.TryGetComponent(out Blaster blaster)est vérifié, appelleblaster.AddAmmo(amount);etDestroy(gameObject);.
Appuie sur « Jouer » et avance vers la droite : la Console affiche Ammo: 7, puis Ammo: 10. Ensuite, appuie sur « Vérifier ».
Essayez vous-même
using UnityEngine;
public class AmmoCrate : MonoBehaviour
{
public int amount = 3;
void OnTriggerEnter(Collider other)
{
// Le Blaster du joueur récupère les munitions, et la caisse disparaît
}
}
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