Les pièces réapparaissent
Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 30 sur 63.
Défi
MoyenUne pièce ramassée réapparaît après respawnDelay secondes, il y a donc toujours quelque chose à poursuivre. C'est une attente au cours de la vie d'une pièce : une coroutine. Garde tout ce que tu as fait dans les étapes précédentes et modifie Coin :
- Ajoute
public float respawnDelay = 3f;. - Un GameObject désactivé n'exécute aucune coroutine, donc
SetActive(false)arrêterait la coroutine de la pièce avant qu'elle puisse la faire réapparaître. Masque la pièce autrement : désactive sonRendererpour qu'elle ne soit pas dessinée, et sonColliderpour qu'elle ne puisse pas être ramassée à nouveau. - Lorsqu'elle est ramassée, démarre une coroutine qui masque la pièce, attend
respawnDelaysecondes, puis réactive les deux composants. Le score est ajouté comme avant.
Appuie sur Play, ramasse une pièce et regarde-la réapparaître, puis clique sur Check.
Essayez vous-même
using UnityEngine;
public class Coin : MonoBehaviour
{
public int value = 1;
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
other.GetComponent<Ball>().AddScore(value);
gameObject.SetActive(false);
}
}
}
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