Menu
CoddyTech

As Moedas Voltam

Parte da seção Física e jogabilidade do Journey de Unity da Coddy. Lição 30 de 63.

challenge icon

Desafio

Médio

Uma moeda coletada reaparece após respawnDelay segundos, então sempre há algo para perseguir. Essa é uma espera dentro do ciclo de vida de uma moeda: uma coroutine. Mantenha tudo das etapas anteriores e altere Coin:

  • Adicione public float respawnDelay = 3f;.
  • Um GameObject desativado não executa coroutines, então SetActive(false) interromperia a coroutine da moeda antes que ela pudesse fazê-la reaparecer. Oculte a moeda de outra forma: desative seu Renderer, para que ela não seja desenhada, e seu Collider, para que não possa ser coletada novamente.
  • Ao coletar a moeda, inicie uma coroutine que a oculte, aguarde respawnDelay segundos e, em seguida, reative ambos. A pontuação é adicionada como antes.

Pressione Play, colete uma moeda e observe-a reaparecer; depois, clique em Check.

Experimente você mesmo

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);
        }
    }
}

Todas as lições de Física e jogabilidade