Menu
CoddyTech

Invoke

Часть раздела Физика и игровой процесс путешествия по Unity на Coddy. Урок 21 из 63.

Invoke("Explode", 3f) вызывает собственный метод скрипта Explode один раз через 3 секунды, а выполнение следующего за ним кода продолжается сразу. Unity находит метод по его имени, переданному в виде строки, и метод не принимает параметров. Эта бомба взрывается через 3 секунды после начала игры:

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

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

Поскольку имя задано строкой, компилятор не может проверить его. Invoke("Explod", 3f) компилируется, а через 3 секунды Unity выводит сообщение Trying to Invoke method: Bomb.Explod couldn't be called. вместо взрыва. nameof в C# решает эту проблему: nameof(Explode) — это строка "Explode", созданная компилятором из имени, которое он проверил, поэтому опечатка в ней приведёт к ошибке компиляции, которую вы увидите до запуска игры. Напишите Invoke(nameof(Explode), 3f);.

challenge icon

Задание

Легко

Платформа между двумя уступами разрушается. Её Rigidbody кинематический, поэтому она висит в воздухе. Напиши скрипт Crumble для неё:

  • Когда игрок приземляется на неё, она ждёт delay секунд (1 в Inspector), а затем падает.
  • Падение выполняет метод с именем Fall: он включает физику платформы (isKinematic = false) и выводит в журнал Crumble!.
  • Пока игрок её не коснулся, платформа остаётся на месте.

Используй nameof для имени метода. Нажми Play и пройди по платформе с помощью стрелок, затем нажми Check.

Попробуйте сами

using UnityEngine;

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

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

    void OnCollisionEnter(Collision collision)
    {
        // Когда игрок приземлится: сделай так, чтобы платформа упала через delay секунд
    }

    // Fall(): включи физику платформы и выведи в журнал Crumble!
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Физика и игровой процесс