Unity 5: Случайные цвета блоков в 2D игре

Случайные цвета блоков

Создадим скрипт RandomColor в папке Game. Этот скрипт будет присваивать случайный цвет блокам. Добавим публичную переменную public Color[] colors; — массив цветов для окрашивания блоков. Заполним массив цветами (например, семью цветами, включая цвет из существующего материала).

В функции Start получим доступ к компоненту Renderer блока и изменим его цвет:

GetComponent<Renderer>().material.color = colors[Random.Range(0, colors.Length)];

Этот код выбирает случайный цвет из массива colors и применяет его к материалу блока. Добавим скрипт RandomColor к блокам в игре. Теперь каждый блок будет иметь случайный цвет при создании.

Изменение цвета платформы при прыжке

Создадим скрипт BlockSameColor для главного кубика. Этот скрипт будет менять цвет платформы на цвет кубика при прыжке.

Функция OnCollisionEnter вызывается при столкновении кубика с другим блоком. Внутри функции проверим, имеет ли объект, с которым произошло столкновение, тег «Cube»:

void OnCollisionEnter(Collision other) {
    if (other.gameObject.tag == "Cube") {
        other.gameObject.GetComponent<Renderer>().material.color = GetComponent<Renderer>().material.color;
    }
}

Этот код получает цвет кубика и применяет его к материалу блока, с которым произошел контакт.

Для предотвращения изменения цвета платформы при первом касании, добавим переменную private bool firstOne = false; и проверим её значение:

void OnCollisionEnter(Collision other) {
    if (other.gameObject.tag == "Cube") {
        if (!firstOne) {
            firstOne = true;
        } else {
            other.gameObject.GetComponent<Renderer>().material.color = GetComponent<Renderer>().material.color;
        }
    }
}

Случайный фон

Создадим скрипт RandomBG для изменения заднего фона. Добавим публичную переменную public Material[] materials; — массив материалов для заднего фона. В функции Start получим доступ к компоненту Skybox главной камеры и присвоим ему случайный материал из массива:

GetComponent<Skybox>().material = materials[Random.Range(0, materials.Length)];

Создадим несколько материалов для заднего фона (например, дублированием и изменением цвета существующего материала) и добавим их в массив materials. Добавим скрипт RandomBG к главной камере. Теперь при запуске игры задний фон будет случайным.

В этом уроке мы добавили несколько визуальных эффектов в игру, используя скрипты для изменения цвета блоков и заднего фона. Это сделало игру интереснее и разнообразнее.

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