Таймер в Unity 5 для Android: пошаговое руководство

Этот таймер отслеживает время, отведенное игроку на выполнение задания, и определяет поражение при его истечении. Он визуально представлен как полоса, уменьшающаяся со временем и меняющая цвет.

Создание объекта таймера

  1. Создайте в сцене новый 3D-объект — куб. Назовите его «Таймер».
  2. Установите его позицию: X = 0, Y = 0, Z = 0.
  3. Измените масштаб куба, чтобы он выглядел как полоса: X = 8, Y = 1, Z = 0.1. Значение Z незначительно влияет на отображение в 2D-режиме.
  4. Поднимите куб по оси Y на 3.3 единицы для лучшего визуального восприятия.
  5. Удалите компонент Box Collider.
  6. Создайте новый материал (Create Material), назовите его «Таймер» и примените к кубу. Задайте ему темный цвет, например, RGB(0, 169, 255).

Написание скрипта таймера

Создайте новый скрипт C# и назовите его «Таймер». Ниже приведён упрощённый код для лучшего понимания:

// Код скрипта таймера (упрощенная версия для лучшего понимания)
using UnityEngine;

public class Timer : MonoBehaviour
{
    public GameObject mainCB; // Главный объект игры
    public Color defaultColor = new Color(0, 169f/255f, 1); // Цвет по умолчанию
    public Color changeColor = new Color(255f/255f, 148f/255f, 238f/255f); // Цвет при изменении
    private Color lastColor;
    public bool ose = false;

    void Start()
    {
        lastColor = GetComponent<Renderer>().material.color;
    }

    void Update()
    {
        if (GetComponent<Renderer>().material.color != lastColor)
        {
            transform.position = new Vector3(0, transform.position.y, transform.position.z);
            GetComponent<Renderer>().material.color = defaultColor;
            lastColor = defaultColor;
        }
        else
        {
            transform.position = new Vector3(transform.position.x - 0.1f, transform.position.y, transform.position.z);
            if (transform.position.x < -8.5f)
            {
                ose = true;
            }
            if (transform.position.x < 1.5f)
            {
                GetComponent<Renderer>().material.color = Color.Lerp(lastColor, changeColor, (1.5f - transform.position.x) / 1.5f);
                lastColor = GetComponent<Renderer>().material.color;
            }
        }
    }
}

Скрипт использует два цвета: цвет по умолчанию и цвет, на который меняется цвет таймера. Переменные mainCB хранит ссылку на главный объект игры, а lastColor – текущий цвет.

Скрипт:

  • Записывает начальный цвет в lastColor.
  • Проверяет изменение цвета главного куба. Если цвет изменился, таймер возвращается в исходное положение, а его цвет сбрасывается.
  • Двигает таймер по оси X влево.
  • При X < -8.5 игра заканчивается (ose = true).
  • При X < 1.5 начинается плавное изменение цвета с помощью Color.Lerp, используя текущий цвет как начальный.

Настройка таймера в Unity

  1. Добавьте компонент скрипта «Таймер» к объекту «Таймер».
  2. Установите два цвета: цвет по умолчанию (RGB(0, 169, 255)) и цвет изменения (RGB(255, 148, 238)).
  3. Укажите в инспекторе ссылку на главный объект игры (Main CB).

Тестирование

Запустите игру и проверьте работоспособность таймера. При правильном нажатии на блоки (предполагается наличие в игре механики, изменяющей цвет главного объекта) таймер должен возвращаться в исходное положение. При неправильном нажатии или истечении времени таймер должен достигнуть конца, и игра должна завершиться.

В этом уроке создан функциональный таймер для игр на Android в Unity 5. Таймер визуально отображается как полоса, уменьшающаяся со временем и меняющая цвет, добавляя игровой динамики. Логика скрипта обрабатывает действия игрока и определяет поражение при истечении времени.

Что будем искать? Например,программа