Menu
CoddyTech

Повторение: ближайшая монета

Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 61 из 85.

Это повторение объединяет материал главы: поиск по тегу в нужный момент, цикл по найденным объектам и расстояние до каждого из них.

challenge icon

Задание

Средне

Дай игроку радар монет: при нажатии пробела он называет ближайшую монету.

  1. При нажатии пробела начни с GameObject nearest = null; и float best = Mathf.Infinity;.
  2. Для каждой монеты из GameObject.FindGameObjectsWithTag("Coin") оставляй её, если расстояние до игрока меньше best.
  3. Выведи в журнал "Nearest coin: " + nearest.name.

Нажми «Играть», подвигайся и нажми пробел: в Console появится Nearest coin: Silver. Затем нажми «Проверить».

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

using UnityEngine;

public class CoinRadar : MonoBehaviour
{
    [SerializeField] private float speed = 4f;

    void Update()
    {
        if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.position += new Vector3(speed * Time.deltaTime, 0, 0);
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.position -= new Vector3(speed * Time.deltaTime, 0, 0);
        }
        if (Input.GetKey(KeyCode.UpArrow))
        {
            transform.position += new Vector3(0, 0, speed * Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.DownArrow))
        {
            transform.position -= new Vector3(0, 0, speed * Time.deltaTime);
        }

        // Space: выведи в лог имя ближайшей монеты.
    }
}
quiz iconПроверьте себя

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

Все уроки раздела Основы скриптинга в Unity

Потренируйтесь самостоятельно: Песочница Unity