Menu
CoddyTech

Invocar

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

Invoke("Explode", 3f) chama o próprio método Explode do script uma vez, daqui a 3 segundos, e o código seguinte continua imediatamente. O Unity encontra o método pelo nome, fornecido como uma string, e o método não recebe parâmetros. Esta bomba explode 3 segundos depois que o jogo começa:

void Start()
{
    Invoke("Explode", 3f);
}

void Explode()
{
    Debug.Log("Boom");
    Destroy(gameObject);
}

Como o nome é uma string, o compilador não pode verificá-lo. Invoke("Explod", 3f) compila, e, 3 segundos depois, o Unity registra Trying to Invoke method: Bomb.Explod couldn't be called. em vez de explodir. O nameof do C# resolve isso: nameof(Explode) é a string "Explode", criada pelo compilador a partir de um nome que ele verificou; assim, um erro de digitação dentro dela gera um erro de compilação que você vê antes de o jogo ser executado. Escreva Invoke(nameof(Explode), 3f);.

challenge icon

Desafio

Fácil

A Plataforma entre as duas bordas está desmoronando. Seu Rigidbody é cinemático, então fica suspenso no ar. Escreva seu script Crumble:

  • Quando o jogador aterrissa nela, ela espera delay segundos (1 no Inspector) e então cai.
  • Cair é um método chamado Fall: ele ativa a física da plataforma (isKinematic = false) e registra Crumble!.
  • Antes de o jogador tocá-la, a plataforma permanece onde está.

Use nameof para o nome do método. Pressione Play e caminhe até a plataforma usando as setas, depois Check.

Experimente você mesmo

using UnityEngine;

public class Crumble : MonoBehaviour
{
    public float delay = 1f;
    Rigidbody body;

    void Start()
    {
        body = GetComponent<Rigidbody>();
    }

    void OnCollisionEnter(Collision collision)
    {
        // Quando o jogador pousar: faça a plataforma cair delay segundos depois
    }

    // Fall(): ative a física da plataforma e registre Crumble!
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

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