Геймдев
#Руководства

Эффекты в Unity: взрывы и следы

С помощью визуальных эффектов можно улучшить даже самую посредственную игру. Учимся создавать их на живых примерах.

 vlada_maestro / shutterstock

Один из основных способов создания эффектов — использование спрайтов с анимацией. Для этого подготавливается префаб объекта, который нужно добавить на карту.

Например, так можно создать простой эффект взрыва. В качестве картинки можно применить любой подходящий спрайт.

Вырезав отдельные кадры, можно создать анимацию (читайте об этом в нашей статье). Добавьте объект на карту и укажите кадры, которые нужно анимировать.

Нарезав пять кадров из показанного выше спрайта, можно создать вот такую анимацию:

Проблема в том, что этот взрыв будет длиться вечно. Чтобы этого не происходило, нужно создать скрипт Explosion.cs и прописать в нем условие уничтожения эффекта. Например, его можно удалить по прошествии какого-нибудь времени. В данном случае можно указать 0,32 секунды — именно столько длится анимация.

public class Explosion : MonoBehaviour
{
	void Start()
	{
		StartCoroutine(Explode()); //При создании объекта вызывается метод Explode().
	}

	IEnumerator Explode()
	{

		yield return new WaitForSeconds(0.3f); //Метод ждет 0,32 секунды, и только потом приступает к выполнению остального кода.

		Destroy(gameObject); //Объект удаляется.
	}
}

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

Как добавить визуальный эффект в Unity

Рассмотреть добавление эффекта можно на примере шутера из этой статьи. В файле Bullet.cs при срабатывании триггера будет создаваться объект explosion.

void OnTriggerEnter2D(Collider2D hitInfo) //Пуля во что-то попала.
{
	Health health = hitInfo.GetComponent<Health>();
	if (health)
	{
		health.Hit(damage); 
	}

	Explode(); //После того, как все основные действия выполнены, вызывается метод, отвечающий за взрыв.

}

void Explode()
{
	Instantiate(explosion, transform.position, Quaternion.identity); //Создается экземпляр созданного префаба на том месте, куда попала пуля.
	Destroy(gameObject); //Пуля уничтожается.
}

Предварительно нужно будет добавить префаб взрыва в поле explosion скрипта Bullet.cs. И после этого можно будет посмотреть на взрыв снаряда при попадании во что-нибудь.

Какие еще могут быть эффекты

Кроме префабов, в Unity можно использовать некоторые встроенные эффекты. Можно использовать объект Trail, чтобы добавить шлейф при движении какого-нибудь объекта. Для этого эффект нужно поместить внутрь чего-нибудь.

Ему можно указать толщину и цвет, а также время исчезновения и другие параметры. Больше ничего делать не нужно — шлейф сам будет следовать за объектом, к которому он прикреплен.

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

Заключение

Это только часть эффектов, которые можно реализовать в Unity. Кроме них, вы можете использовать шейдеры, частицы, свет и многое другое.

Подробнее обо всем этом вы можете узнать на курсе «Профессия разработчик игр на Unity». Там вы будете осваивать Unity, работая над реальными проектами, поэтому к концу курса не только научитесь создавать игры, но и соберете хорошее портфолио.

Любите игры? Попробуйте себя в геймдеве!

❓ Кто вы: геймдизайнер, разработчик, концепт-художник? Узнайте на бесплатном курсе

😼 Узнать, кто я →
Кто вы в мире геймдева? Узнайте на бесплатном курсе ➞
Вы на практике попробуете 3 профессии: геймдизайнера, 2D-художника и разработчика на Unity. Создадите свою первую игру в стиле Mario. Подробности — по клику.
Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована