Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Unity_в_действии_Джозеф_Хокинг_Рус.pdf
Скачиваний:
83
Добавлен:
21.06.2022
Размер:
26.33 Mб
Скачать

110      Глава 4. Работа с графикой

Рис. 4.23. Выбор раскраски материала для частиц пламени

ОПРЕДЕЛЕНИЕ  Вариант раскраски Additive добавляет цвет частицы к цвету фона за ней, а не заменяет пикселы. Благодаря этому пикселы становятся ярче, а черный цвет делается невидимым. Противоположный эффект оказывает вариант Multiply, делающий все вокруг темнее; эти раскраски производят тот же самый эффект, что и эффекты слоя Additive и Multiply в приложении Photoshop.

После назначения системе частиц материала, имитирующего огонь, мы получили нужный эффект (см. рис. 4.18). Факел выглядит достаточно убедительно, причем он в состоянии работать не только в статичном положении. Чтобы убедиться в этом, давайте присоединим его к движущемуся объекту.

4.6.3. Присоединение эффектов частиц к трехмерным объектам

Создайте сферу (напоминаю, что в меню GameObject нужно выбрать команду 3D Object Sphere). Создайте новый сценарий с именем BackAndForth, показанный в следующем листинге, и присоедините его к сфере.

Листинг 4.1. Движение объекта взад и вперед по прямой

using UnityEngine;

using System.Collections;

public class BackAndForth : MonoBehaviour { public float speed = 3.0f;

public float maxZ = 16.0f; ¬ Объект движется между этими точками. public float minZ = -16.0f;

private int _direction = 1; ¬ В каком направлении объект движется в данный момент?

void Update() {

transform.Translate(0, 0, _direction * speed * Time.deltaTime);

bool bounced = false;

if (transform.position.z > maxZ || transform.position.z < minZ) { _direction = -_direction; ¬ Меняем направление на противоположное. bounced = true;

}

if (bounced) { ¬ Делаем дополнительное движение в этом кадре, если объект поменял направление. transform.Translate(0, 0, _direction * speed * Time.deltaTime);

}

}

}