← Назад к вопросам

Как использовать систему частиц (Particle System) в Unity?

1.0 Junior🔥 121 комментариев
#Unity Core#Анимация#Рендеринг и графика

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI7 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Использование системы частиц (Particle System) в Unity

Particle System в Unity — это мощный инструмент для создания визуальных эффектов, таких как дым, огонь, магия, взрывы и атмосферные явления. Работа с ним включает создание, настройку и управление через редактор или скрипты. Вот основные шаги и концепции.

Создание и базовая настройка

  1. Создание системы частиц: В меню GameObject → Effects → Particle System, или через Hierarchy: правый клик → Effects → Particle System.
  2. Компоненты системы: Каждая система содержит модули (Particle System Main, Emission, Shape, Velocity over Lifetime и др.), управляющие поведением. Основные настройки в модуле Main:
    • Duration: время жизни системы.
    • Start Lifetime, Start Speed, Start Size: начальные параметры частиц.
    • Gravity Modifier: влияние гравитации.
    • Simulation Space: World/Local — определяет, движутся ли частицы относительно мира или родительского объекта.

Пример создания через код:

// Создание Particle System программно
using UnityEngine;

public class ParticleCreator : MonoBehaviour
{
    void Start()
    {
        GameObject particleObj = new GameObject("MyParticle");
        ParticleSystem ps = particleObj.AddComponent<ParticleSystem>();

        // Настройка основного модуля
        var main = ps.main;
        main.startSpeed = 5f;
        main.startLifetime = 3f;
        main.startSize = 0.5f;
    }
}

Ключевые модули и их использование

  • Emission: управляет частотой испускания частиц. Можно задать постоянную скорость (Rate over Time) или всплески (Bursts).
  • Shape: определяет форму области испускания (Sphere, Cone, Box). Например, для огня часто используют Cone.
  • Renderer: настройки материала и визуализации. Для эффективности используйте материалы с шейдером Particle/Standard Unlit или Mobile/Particles.
  • Color over Lifetime: изменение цвета частиц со временем, например, для эффекта затухания.
  • Texture Sheet Animation: анимация спрайтов частиц, полезна для эффектов вроде взрывов.

Пример настройки через скрипт:

// Настройка модулей через код
using UnityEngine;

public class ParticleConfig : MonoBehaviour
{
    public Material particleMaterial;

    void Start()
    {
        ParticleSystem ps = GetComponent<ParticleSystem>();

        // Модуль цвета
        var colorModule = ps.colorOverLifetime;
        colorModule.enabled = true;
        colorModule.color = new ParticleSystem.MinMaxGradient(Color.red, Color.yellow);

        // Модуль эмиссии
        var emission = ps.emission;
        emission.rateOverTime = 10f;

        // Рендерер
        var renderer = ps.GetComponent<ParticleSystemRenderer>();
        renderer.material = particleMaterial;
    }
}

Оптимизация и управление

  1. Пулинг объектов: Для частых эффектов (выстрелы, удары) используйте Object Pooling, чтобы избежать создания/уничтожения объектов. Пример:
// Простой пулинг для частиц
public class ParticlePool : MonoBehaviour
{
    public ParticleSystem prefab;
    private List<ParticleSystem> pool = new List<ParticleSystem>();

    public ParticleSystem GetParticle()
    {
        foreach (var ps in pool)
            if (!ps.isPlaying) return ps;

        ParticleSystem newPs = Instantiate(prefab);
        pool.Add(newPs);
        return newPs;
    }
}
  1. Производительность: Контролируйте количество частиц (Max Particles), используйте LOD-группы для детализации на расстоянии. Для мобильных платформ уменьшайте сложность.
  2. Управление через скрипты: Запуск/остановка:
ps.Play(); // Запуск
ps.Stop(); // Остановка
ps.Clear(); // Очистка

Практические советы

  • Используйте префабы: Создавайте префабы эффектов для повторного использования.
  • Combine Meshes: Для статических эффектов объединяйте меши, чтобы снизить количество draw calls.
  • Редактор VS код: Большинство настроек удобнее делать в редакторе, но динамическое управление (например, изменение цвета в игре) требует скриптов.

Particle System — гибкий инструмент, требующий экспериментов. Начните с простых пресетов из Asset Store, изучайте параметры и тестируйте в реальном времени через окно Particle Effect (открывается при выделении системы).