HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>17 апр 2024</li>
2 <ul><li>17 апр 2024</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Разбираемся в нюансах настройки системы частиц в Unity.</p>
4 </ul><p>Разбираемся в нюансах настройки системы частиц в Unity.</p>
5 <p>Иллюстрация: Yulia Gadalina / Unsplash / Annie для Skillbox Media</p>
5 <p>Иллюстрация: Yulia Gadalina / Unsplash / Annie для Skillbox Media</p>
6 <p><a>Делает игры</a>на Unity, пишет статьи про геймдев. Всё ещё ждёт, когда выпустят No One Lives Forever 3.</p>
6 <p><a>Делает игры</a>на Unity, пишет статьи про геймдев. Всё ещё ждёт, когда выпустят No One Lives Forever 3.</p>
7 <p>Когда в видеоигре надо создать дым, облака, огонь, искры, взрыв, сыпучее или текучее вещество, дробь, вылетающую из ружья, туман, всполохи магии или любой другой эффект, который состоит из множества маленьких объектов, используют систему частиц.</p>
7 <p>Когда в видеоигре надо создать дым, облака, огонь, искры, взрыв, сыпучее или текучее вещество, дробь, вылетающую из ружья, туман, всполохи магии или любой другой эффект, который состоит из множества маленьких объектов, используют систему частиц.</p>
8 <p>В том или ином виде она присутствует в каждом игровом движке. В последней версии Unreal Engine, например, она называется Niagara, а в Unity, о котором и пойдёт речь ниже, это буквально Particle System. В этом тексте мы разберёмся, что собой представляет система частиц в Unity, как её создать и настроить.</p>
8 <p>В том или ином виде она присутствует в каждом игровом движке. В последней версии Unreal Engine, например, она называется Niagara, а в Unity, о котором и пойдёт речь ниже, это буквально Particle System. В этом тексте мы разберёмся, что собой представляет система частиц в Unity, как её создать и настроить.</p>
9 <p>Важное уточнение: в Unity есть встроенная система Particle System, которая может создавать тысячи частиц. А есть устанавливаемое дополнение<a>Visual Effect Graph</a>, которое за счёт графического процессора способно создавать миллионы частиц. В этом материале мы говорим именно про встроенную Particle System.</p>
9 <p>Важное уточнение: в Unity есть встроенная система Particle System, которая может создавать тысячи частиц. А есть устанавливаемое дополнение<a>Visual Effect Graph</a>, которое за счёт графического процессора способно создавать миллионы частиц. В этом материале мы говорим именно про встроенную Particle System.</p>
10 <p>Чтобы добавить в сцену систему частиц, в окне<strong>Hierarchy</strong>нажмите на значок "+". В выпавшем меню выберите пункт<strong>Effects</strong>, а далее -<strong>Particle System</strong>.</p>
10 <p>Чтобы добавить в сцену систему частиц, в окне<strong>Hierarchy</strong>нажмите на значок "+". В выпавшем меню выберите пункт<strong>Effects</strong>, а далее -<strong>Particle System</strong>.</p>
11 <p>То же самое меню можно получить, если кликнуть правой кнопкой мыши в окне<strong>Hierarchy</strong>по свободному пространству или если нажать в верхней панели на <strong>GameObject</strong>.</p>
11 <p>То же самое меню можно получить, если кликнуть правой кнопкой мыши в окне<strong>Hierarchy</strong>по свободному пространству или если нажать в верхней панели на <strong>GameObject</strong>.</p>
12 <em>Скриншот: Skillbox Media</em><p>После этого в окне<strong>Scene</strong>у вас появится конус, испускающий белые полупрозрачные круги. Это система частиц с настройками по умолчанию. Изменив их, мы можем придать частицам любой необходимый вид и поведение.</p>
12 <em>Скриншот: Skillbox Media</em><p>После этого в окне<strong>Scene</strong>у вас появится конус, испускающий белые полупрозрачные круги. Это система частиц с настройками по умолчанию. Изменив их, мы можем придать частицам любой необходимый вид и поведение.</p>
13 <p>Обратите внимание, что, когда система частиц выделена, в окне<strong>Scene</strong>справа внизу появляется небольшое окно<strong>Particles</strong>с кнопками<strong>Pause</strong>,<strong>Restart</strong>и <strong>Stop</strong>. С его помощью можно запустить генерацию частиц, остановить её, перезапустить или поставить на паузу, чтобы посмотреть, как частицы будут себя вести.</p>
13 <p>Обратите внимание, что, когда система частиц выделена, в окне<strong>Scene</strong>справа внизу появляется небольшое окно<strong>Particles</strong>с кнопками<strong>Pause</strong>,<strong>Restart</strong>и <strong>Stop</strong>. С его помощью можно запустить генерацию частиц, остановить её, перезапустить или поставить на паузу, чтобы посмотреть, как частицы будут себя вести.</p>
14 <p>Выделив систему частиц, вы можете передвинуть её в нужное место или повернуть под нужным углом, как и любой другой игровой объект. Все изменения его положения и наклона отражаются в окне<strong>Inspector</strong>в компоненте<strong>Transform</strong>. Но куда важнее здесь другой компонент, который находится ниже, -<strong>Particle System</strong>.</p>
14 <p>Выделив систему частиц, вы можете передвинуть её в нужное место или повернуть под нужным углом, как и любой другой игровой объект. Все изменения его положения и наклона отражаются в окне<strong>Inspector</strong>в компоненте<strong>Transform</strong>. Но куда важнее здесь другой компонент, который находится ниже, -<strong>Particle System</strong>.</p>
15 <p>Вы можете сделать систему частиц дочерней для любого объекта, чтобы она перемещалась вместе с ним. Например, если вы сделали огонь, то его можно прикрепить к объекту с моделью факела. Также вы можете добавить компонент<strong>Particle System</strong>к любому уже существующему объекту, если выделите этот объект и в его окне<strong>Inspector</strong>нажмёте<strong>Add Component</strong>, а затем выберете пункт<strong>Effects</strong>и далее<strong>Particle System</strong>.</p>
15 <p>Вы можете сделать систему частиц дочерней для любого объекта, чтобы она перемещалась вместе с ним. Например, если вы сделали огонь, то его можно прикрепить к объекту с моделью факела. Также вы можете добавить компонент<strong>Particle System</strong>к любому уже существующему объекту, если выделите этот объект и в его окне<strong>Inspector</strong>нажмёте<strong>Add Component</strong>, а затем выберете пункт<strong>Effects</strong>и далее<strong>Particle System</strong>.</p>
16 <em>Скриншот: Skillbox Media</em><p>Как показано на скриншоте выше, компонент<strong>Particle System</strong>состоит из множества модулей, каждый из которых отвечает за свой набор настроек поведения и внешнего вида частиц. Система частиц при работе учитывает лишь те из них, которые помечены галочкой. На скриншоте, например, по умолчанию включены только модули<strong>Emission</strong>,<strong>Shape</strong>и <strong>Renderer</strong>.</p>
16 <em>Скриншот: Skillbox Media</em><p>Как показано на скриншоте выше, компонент<strong>Particle System</strong>состоит из множества модулей, каждый из которых отвечает за свой набор настроек поведения и внешнего вида частиц. Система частиц при работе учитывает лишь те из них, которые помечены галочкой. На скриншоте, например, по умолчанию включены только модули<strong>Emission</strong>,<strong>Shape</strong>и <strong>Renderer</strong>.</p>
17 <p>При этом самый главный модуль, который раскрыт по умолчанию, активен всегда, ведь он содержит набор самых базовых настроек для генератора частиц. В <strong>Inspector</strong>этот модуль никак не подписан, но в официальной<a>документации</a>Unity, например, его называют модулем<strong>Main</strong>. Разберёмся, что он собой представляет.</p>
17 <p>При этом самый главный модуль, который раскрыт по умолчанию, активен всегда, ведь он содержит набор самых базовых настроек для генератора частиц. В <strong>Inspector</strong>этот модуль никак не подписан, но в официальной<a>документации</a>Unity, например, его называют модулем<strong>Main</strong>. Разберёмся, что он собой представляет.</p>
18 <p>Самый главный модуль в компоненте<strong>Particle System</strong>состоит из 25 параметров. Первый пункт,<strong>Duration</strong>,<strong></strong>отвечает за то, сколько секунд будут испускаться частицы. Поставите 1 - и частицы будут вылетать ровно одну секунду. Поставите 10 - будут вылетать десять секунд.</p>
18 <p>Самый главный модуль в компоненте<strong>Particle System</strong>состоит из 25 параметров. Первый пункт,<strong>Duration</strong>,<strong></strong>отвечает за то, сколько секунд будут испускаться частицы. Поставите 1 - и частицы будут вылетать ровно одну секунду. Поставите 10 - будут вылетать десять секунд.</p>
19 <p>Важно, что эффект от <strong>Duration</strong>будет виден, лишь если в следующем пункте<strong>Looping</strong>не поставить галочку. Потому что иначе частицы будут генерироваться бесконечно снова и снова. Пункт<strong>Duration</strong>в этом случае будет обозначать длительность одного цикла генерации частиц.</p>
19 <p>Важно, что эффект от <strong>Duration</strong>будет виден, лишь если в следующем пункте<strong>Looping</strong>не поставить галочку. Потому что иначе частицы будут генерироваться бесконечно снова и снова. Пункт<strong>Duration</strong>в этом случае будет обозначать длительность одного цикла генерации частиц.</p>
20 <p><strong>В каких случаях использовать Looping</strong></p>
20 <p><strong>В каких случаях использовать Looping</strong></p>
21 <p>Если вам нужно, чтобы огонь на факеле постоянно горел, или вода в фонтане, не прекращая, била ключом, или чтобы туман стелился по земле беспрестанно, то вы ставите галочку у <strong>Looping</strong>. Если же вы хотите, чтобы искры от взрыва разлетелись лишь раз, чтобы листва с дерева опала лишь единожды, чтобы облачко пыли под ногами персонажа поднялось лишь раз, когда он подпрыгнет, то галочку у <strong>Looping</strong>ставить не нужно.</p>
21 <p>Если вам нужно, чтобы огонь на факеле постоянно горел, или вода в фонтане, не прекращая, била ключом, или чтобы туман стелился по земле беспрестанно, то вы ставите галочку у <strong>Looping</strong>. Если же вы хотите, чтобы искры от взрыва разлетелись лишь раз, чтобы листва с дерева опала лишь единожды, чтобы облачко пыли под ногами персонажа поднялось лишь раз, когда он подпрыгнет, то галочку у <strong>Looping</strong>ставить не нужно.</p>
22 <p>Активированный<strong>Looping</strong>делает доступным для изменения следующий параметр -<strong>Prewarm</strong>. Если его включить, система частиц при запуске игры будет выглядеть так, словно она полностью прошла один цикл и частицы генерируются уже давно. В противном случае вы увидите, как частицы постепенно появляются одна за другой, начиная с самой первой.</p>
22 <p>Активированный<strong>Looping</strong>делает доступным для изменения следующий параметр -<strong>Prewarm</strong>. Если его включить, система частиц при запуске игры будет выглядеть так, словно она полностью прошла один цикл и частицы генерируются уже давно. В противном случае вы увидите, как частицы постепенно появляются одна за другой, начиная с самой первой.</p>
23 <p>Параметр<strong>Start Delay</strong> - это задержка в секундах перед тем, как генератор начнёт создавать частицы. Учтите, что если вы используете параметр<strong>Prewarm</strong>, то <strong>Start Delay</strong>будет недоступен, так как в этом случае в задержке нет никакого смысла.</p>
23 <p>Параметр<strong>Start Delay</strong> - это задержка в секундах перед тем, как генератор начнёт создавать частицы. Учтите, что если вы используете параметр<strong>Prewarm</strong>, то <strong>Start Delay</strong>будет недоступен, так как в этом случае в задержке нет никакого смысла.</p>
24 <p><strong>Start Lifetime</strong>определяет, сколько секунд "проживёт" каждая частица, прежде чем исчезнет. На примере ниже видно, что чем меньше срок существования частиц, тем меньший путь каждая из них успевает пройти.</p>
24 <p><strong>Start Lifetime</strong>определяет, сколько секунд "проживёт" каждая частица, прежде чем исчезнет. На примере ниже видно, что чем меньше срок существования частиц, тем меньший путь каждая из них успевает пройти.</p>
25 <p><strong>Start Speed</strong> - начальная скорость частиц. Чем выше значение, тем дальше успеет улететь каждая, прежде чем истечёт срок её существования.</p>
25 <p><strong>Start Speed</strong> - начальная скорость частиц. Чем выше значение, тем дальше успеет улететь каждая, прежде чем истечёт срок её существования.</p>
26 <p>Далее у нас два пункта<strong>3D Start Size</strong>и <strong>Start Size</strong>. Начнём с последнего. В нём мы указываем, какого размера будут частицы сразу по всем трём осям - X, Y, Z. Но если мы поставим галочку у <strong>3D Start Size</strong>, то сможем менять размер по каждой оси отдельно.</p>
26 <p>Далее у нас два пункта<strong>3D Start Size</strong>и <strong>Start Size</strong>. Начнём с последнего. В нём мы указываем, какого размера будут частицы сразу по всем трём осям - X, Y, Z. Но если мы поставим галочку у <strong>3D Start Size</strong>, то сможем менять размер по каждой оси отдельно.</p>
27 <p>На примере ниже сначала мы просто задали<strong>Start Size</strong>равным 5, из-за чего частицы стали большими и визуально слились во что-то похожее на пар. Затем с помощью<strong>3D Start Size</strong>мы сделали равным 5 только размеры частиц по оси X, из-за чего они растянулись по горизонтали. В третьем примере мы присвоили значение 5 только размеру по оси Y, из-за чего частицы растянулись по вертикали.</p>
27 <p>На примере ниже сначала мы просто задали<strong>Start Size</strong>равным 5, из-за чего частицы стали большими и визуально слились во что-то похожее на пар. Затем с помощью<strong>3D Start Size</strong>мы сделали равным 5 только размеры частиц по оси X, из-за чего они растянулись по горизонтали. В третьем примере мы присвоили значение 5 только размеру по оси Y, из-за чего частицы растянулись по вертикали.</p>
28 <p>Следующие два пункта,<strong>Start Rotation</strong>и <strong>3D Start Rotation</strong>, работают по похожему принципу. В <strong>Start Rotation</strong>можно задать на сколько градусов будет повёрнут объект сразу по всем осям. Если поставить галочку в <strong>3D Start Rotation</strong>, то можно задать поворот по каждой из осей отдельно.</p>
28 <p>Следующие два пункта,<strong>Start Rotation</strong>и <strong>3D Start Rotation</strong>, работают по похожему принципу. В <strong>Start Rotation</strong>можно задать на сколько градусов будет повёрнут объект сразу по всем осям. Если поставить галочку в <strong>3D Start Rotation</strong>, то можно задать поворот по каждой из осей отдельно.</p>
29 <p>Рядом стоит пункт<strong>Flip Rotation</strong>, в котором можно задать значение от 0 до 1. Он добавляет небольшое разнообразие к повороту частиц: часть из них разворачивается в противоположном направлении. Лучше всего разница видна при значении 0,5.</p>
29 <p>Рядом стоит пункт<strong>Flip Rotation</strong>, в котором можно задать значение от 0 до 1. Он добавляет небольшое разнообразие к повороту частиц: часть из них разворачивается в противоположном направлении. Лучше всего разница видна при значении 0,5.</p>
30 <p>Пункт<strong>Start Color</strong>, как понятно из названия, задаёт начальный цвет частицам.</p>
30 <p>Пункт<strong>Start Color</strong>, как понятно из названия, задаёт начальный цвет частицам.</p>
31 <p><strong>Gravity Source</strong>позволяет выбрать, какую физику использовать для гравитации частиц - 2D или 3D. Общие настройки для каждого вида физики можно посмотреть, если выбрать в меню вверху<strong>Edit</strong>, а потом<strong>Project Settings</strong>. Там будут разделы<strong>Physics</strong>и <strong>Physics 2D</strong>. Не стоит здесь что-либо менять без чёткого понимания, для чего вам это нужно.</p>
31 <p><strong>Gravity Source</strong>позволяет выбрать, какую физику использовать для гравитации частиц - 2D или 3D. Общие настройки для каждого вида физики можно посмотреть, если выбрать в меню вверху<strong>Edit</strong>, а потом<strong>Project Settings</strong>. Там будут разделы<strong>Physics</strong>и <strong>Physics 2D</strong>. Не стоит здесь что-либо менять без чёткого понимания, для чего вам это нужно.</p>
32 <p>Следующий после<strong>Gravity Source</strong>пункт<strong>Gravity Modifier</strong>определяет воздействие гравитации на частицы. При 0 частицы существуют в невесомости. Если значение увеличивать, то частицы начнёт притягивать к земле.</p>
32 <p>Следующий после<strong>Gravity Source</strong>пункт<strong>Gravity Modifier</strong>определяет воздействие гравитации на частицы. При 0 частицы существуют в невесомости. Если значение увеличивать, то частицы начнёт притягивать к земле.</p>
33 <p><strong>Simulation Space</strong>определяет, будут ли частицы использовать локальные координаты (<strong>Local</strong>), мировые координаты (<strong>World</strong>) или же координаты какого-то другого объекта (<strong>Custom</strong>). В случае<strong>Local</strong>куда бы ни переместился объект с <strong>Particle System</strong>, частицы перемещаются вслед за ним. Если же вы хотите, чтобы частицы не двигались следом, а оставляли позади него шлейф, то надо выбрать вариант<strong>World</strong>.</p>
33 <p><strong>Simulation Space</strong>определяет, будут ли частицы использовать локальные координаты (<strong>Local</strong>), мировые координаты (<strong>World</strong>) или же координаты какого-то другого объекта (<strong>Custom</strong>). В случае<strong>Local</strong>куда бы ни переместился объект с <strong>Particle System</strong>, частицы перемещаются вслед за ним. Если же вы хотите, чтобы частицы не двигались следом, а оставляли позади него шлейф, то надо выбрать вариант<strong>World</strong>.</p>
34 <p>Дым, который идёт от факела на стене, можно оставить в пространстве<strong>Local</strong>. А вот если этот факел несёт какой-нибудь персонаж, то частицы, формирующие дым, для реалистичности лучше создавать в пространстве<strong>World</strong>, чтобы за факелом оставался дымный след.</p>
34 <p>Дым, который идёт от факела на стене, можно оставить в пространстве<strong>Local</strong>. А вот если этот факел несёт какой-нибудь персонаж, то частицы, формирующие дым, для реалистичности лучше создавать в пространстве<strong>World</strong>, чтобы за факелом оставался дымный след.</p>
35 <p>При варианте<strong>Simulation Space: Custom</strong>частицы после появления начинают существовать в локальных координатах указанного объекта. В примере ниже частицы испускаются синей сферой, но мы указали, что существуют они в координатах красного куба. Поэтому когда он сдвигается влево или вправо, то частицы двигаются вместе с ним.</p>
35 <p>При варианте<strong>Simulation Space: Custom</strong>частицы после появления начинают существовать в локальных координатах указанного объекта. В примере ниже частицы испускаются синей сферой, но мы указали, что существуют они в координатах красного куба. Поэтому когда он сдвигается влево или вправо, то частицы двигаются вместе с ним.</p>
36 <p>Самый очевидный вариант того, что с помощью этого можно сделать, - ветер, который сдувает капли дождя то в одну, то в другую сторону.</p>
36 <p>Самый очевидный вариант того, что с помощью этого можно сделать, - ветер, который сдувает капли дождя то в одну, то в другую сторону.</p>
37 <p>С помощью<strong>Simulation Speed</strong>можно ускорить либо замедлить работу системы частиц. Нормальная скорость - это значение 1. При 0 система замрёт. При 2 все процессы будут происходить в два раза быстрее. При 10 - соответственно, в десять раз быстрее.</p>
37 <p>С помощью<strong>Simulation Speed</strong>можно ускорить либо замедлить работу системы частиц. Нормальная скорость - это значение 1. При 0 система замрёт. При 2 все процессы будут происходить в два раза быстрее. При 10 - соответственно, в десять раз быстрее.</p>
38 <p><strong>Delta Time</strong>определяет, зависит система частиц от времени или нет. В Unity есть параметр<strong>timeScale</strong>, который определяет, как течёт время в игре. Если он равен 1, то время течёт с нормальной скоростью. Если поставить значение 2, то оно будет идти в два раза быстрее. Если 0,5, то в два раза медленнее. Так можно реализовать механику bullet time, о чём мы рассказывали в одном из <a>предыдущих материалов</a>. А если<strong>timeScale</strong>= 0, то время останавливается и всё замирает. Так можно сделать паузу.</p>
38 <p><strong>Delta Time</strong>определяет, зависит система частиц от времени или нет. В Unity есть параметр<strong>timeScale</strong>, который определяет, как течёт время в игре. Если он равен 1, то время течёт с нормальной скоростью. Если поставить значение 2, то оно будет идти в два раза быстрее. Если 0,5, то в два раза медленнее. Так можно реализовать механику bullet time, о чём мы рассказывали в одном из <a>предыдущих материалов</a>. А если<strong>timeScale</strong>= 0, то время останавливается и всё замирает. Так можно сделать паузу.</p>
39 <p>Но что, если вам в момент паузы надо, чтобы система всё равно продолжала генерировать частицы? На этот случай и существует пункт<strong>Delta Time</strong>. В режиме<strong>Scaled</strong>система будет зависеть от времени. И если оно остановится, то замрут и частицы. А вот в режиме<strong>Unscaled</strong>частицы живут своей жизнью, независимо от того, как быстро или как медленно течёт время в игре.</p>
39 <p>Но что, если вам в момент паузы надо, чтобы система всё равно продолжала генерировать частицы? На этот случай и существует пункт<strong>Delta Time</strong>. В режиме<strong>Scaled</strong>система будет зависеть от времени. И если оно остановится, то замрут и частицы. А вот в режиме<strong>Unscaled</strong>частицы живут своей жизнью, независимо от того, как быстро или как медленно течёт время в игре.</p>
40 <p>Следующий параметр<strong>Scaling Mode</strong>определяет, как система частиц применяет компонент<strong>Transform</strong>по отношению к самим частицам. Речь тут идёт в частности о том, как на них будет влиять параметр<strong>Scale</strong>. Он, напомним, отвечает за широту или узость объекта по каждой из трёх осей X, Y, Z.</p>
40 <p>Следующий параметр<strong>Scaling Mode</strong>определяет, как система частиц применяет компонент<strong>Transform</strong>по отношению к самим частицам. Речь тут идёт в частности о том, как на них будет влиять параметр<strong>Scale</strong>. Он, напомним, отвечает за широту или узость объекта по каждой из трёх осей X, Y, Z.</p>
41 <p>У <strong>Scaling Mode</strong>есть три режима работы:<strong>Hierarchy</strong>,<strong>Local</strong>,<strong>Shape</strong>.</p>
41 <p>У <strong>Scaling Mode</strong>есть три режима работы:<strong>Hierarchy</strong>,<strong>Local</strong>,<strong>Shape</strong>.</p>
42 <p>Если выбрать режим<strong>Hierarchy</strong>, то <strong>Scale</strong>системы частиц будет меняться вместе с изменением<strong>Scale</strong>не только самой системы частиц, но и родительского объекта. Если в окне<strong>Hierarchy</strong>вы поместили внутрь объекта факела систему частиц и решили, что факел надо сделать широким, то широкими станут и сами частицы. В примере ниже мы сделали систему частиц дочерней для сферы, а затем расширили сферу по оси X до 5 единиц (по умолчанию<strong>Scale</strong>по оси X равен 1). Как видите, частицы тоже стали широкими.</p>
42 <p>Если выбрать режим<strong>Hierarchy</strong>, то <strong>Scale</strong>системы частиц будет меняться вместе с изменением<strong>Scale</strong>не только самой системы частиц, но и родительского объекта. Если в окне<strong>Hierarchy</strong>вы поместили внутрь объекта факела систему частиц и решили, что факел надо сделать широким, то широкими станут и сами частицы. В примере ниже мы сделали систему частиц дочерней для сферы, а затем расширили сферу по оси X до 5 единиц (по умолчанию<strong>Scale</strong>по оси X равен 1). Как видите, частицы тоже стали широкими.</p>
43 <p>При режиме<strong>Local</strong>будут учитываться изменения параметра<strong>Scale</strong>только у самой системы частиц. У родительского объекта вы можете менять его как угодно, частицы будут неизменного размера.</p>
43 <p>При режиме<strong>Local</strong>будут учитываться изменения параметра<strong>Scale</strong>только у самой системы частиц. У родительского объекта вы можете менять его как угодно, частицы будут неизменного размера.</p>
44 <p>Третий режим,<strong>Shape</strong>, меняет не размер частиц, а только их положение. Этот параметр привязан к модулю<strong>Shape</strong>, о котором мы подробнее поговорим ниже. Модуль<strong>Shape</strong>определяет направление частиц и трёхмерный объём в виде геометрической фигуры, внутри которого они создаются. Если родительский объект станет широким, то расширится и этот объём. Соответственно разлёт частиц тоже расширится.</p>
44 <p>Третий режим,<strong>Shape</strong>, меняет не размер частиц, а только их положение. Этот параметр привязан к модулю<strong>Shape</strong>, о котором мы подробнее поговорим ниже. Модуль<strong>Shape</strong>определяет направление частиц и трёхмерный объём в виде геометрической фигуры, внутри которого они создаются. Если родительский объект станет широким, то расширится и этот объём. Соответственно разлёт частиц тоже расширится.</p>
45 <p>В примере выше над сферой видно очертания фигуры Cone, внутри которой создаются частицы. Меняя<strong>Scale</strong>по оси X сферы, мы соответственно меняем и ширину самого конуса. Разлёт частиц тоже меняется, но размер они сохраняют прежний.</p>
45 <p>В примере выше над сферой видно очертания фигуры Cone, внутри которой создаются частицы. Меняя<strong>Scale</strong>по оси X сферы, мы соответственно меняем и ширину самого конуса. Разлёт частиц тоже меняется, но размер они сохраняют прежний.</p>
46 <p>Параметр<strong>Play On Awake</strong>отвечает за то, будут ли частицы создаваться сразу, как только запустится игра, ну или когда объект с частицами вдруг появится в сцене. В противном случае запуск частиц произойдёт лишь при определённом условии, которое можно указать, например, в коде.</p>
46 <p>Параметр<strong>Play On Awake</strong>отвечает за то, будут ли частицы создаваться сразу, как только запустится игра, ну или когда объект с частицами вдруг появится в сцене. В противном случае запуск частиц произойдёт лишь при определённом условии, которое можно указать, например, в коде.</p>
47 <p><strong>Emitter Velocity Mode</strong>определяет добавочную скорость для частиц. У него есть три режима работы:<strong>Transform</strong>,<strong>Rigidbody</strong>и <strong>Custom</strong>.</p>
47 <p><strong>Emitter Velocity Mode</strong>определяет добавочную скорость для частиц. У него есть три режима работы:<strong>Transform</strong>,<strong>Rigidbody</strong>и <strong>Custom</strong>.</p>
48 <p>Режим<strong>Transform</strong>подразумевает, что при создании каждой частицы к ней будет добавляться скорость объекта, определяемая через компонент<strong>Transform</strong>. Чтобы лучше проиллюстрировать это, мы настроили систему частиц так, что она генерирует их по прямой линии. А чтобы частицы после создания не двигались за зелёной сферой, параметр<strong>Simulation Space</strong>мы переключили на <strong>World</strong>.</p>
48 <p>Режим<strong>Transform</strong>подразумевает, что при создании каждой частицы к ней будет добавляться скорость объекта, определяемая через компонент<strong>Transform</strong>. Чтобы лучше проиллюстрировать это, мы настроили систему частиц так, что она генерирует их по прямой линии. А чтобы частицы после создания не двигались за зелёной сферой, параметр<strong>Simulation Space</strong>мы переключили на <strong>World</strong>.</p>
49 <p>Обратите внимание, когда сфера движется вправо или влево, частицы движутся вместе с ней выстраиваясь в столбик, но когда сфера начинает двигаться в другую сторону, этот столбик из частиц продолжает двигаться в ту сторону, в которую сфера шла изначально.</p>
49 <p>Обратите внимание, когда сфера движется вправо или влево, частицы движутся вместе с ней выстраиваясь в столбик, но когда сфера начинает двигаться в другую сторону, этот столбик из частиц продолжает двигаться в ту сторону, в которую сфера шла изначально.</p>
50 <p>Так происходит потому, что в параметре<strong>Emitter Velocity Mode</strong>при режиме<strong>Transform</strong>каждая частица получила скорость и направление от компонента<strong>Transform</strong>сферы. Пока она двигалась влево, её скорость была -10. Аналогично каждая частица двигалась со скоростью -10. Поэтому какое-то время казалось, что они приклеились к сфере. Но когда сфера пошла в другую сторону со скоростью 10, у частиц, выпущенных ранее, скорость осталась равной -10. Поэтому они продолжили движение в прежнюю сторону.</p>
50 <p>Так происходит потому, что в параметре<strong>Emitter Velocity Mode</strong>при режиме<strong>Transform</strong>каждая частица получила скорость и направление от компонента<strong>Transform</strong>сферы. Пока она двигалась влево, её скорость была -10. Аналогично каждая частица двигалась со скоростью -10. Поэтому какое-то время казалось, что они приклеились к сфере. Но когда сфера пошла в другую сторону со скоростью 10, у частиц, выпущенных ранее, скорость осталась равной -10. Поэтому они продолжили движение в прежнюю сторону.</p>
51 <p>В свою очередь режим<strong>Rigidbody</strong>добавляет скорость частицам на основе физической скорости объекта. Соответственно, к системе частиц должен быть подключён компонент<strong>Rigidbody</strong>, который и отвечает за физически корректное перемещение объекта.</p>
51 <p>В свою очередь режим<strong>Rigidbody</strong>добавляет скорость частицам на основе физической скорости объекта. Соответственно, к системе частиц должен быть подключён компонент<strong>Rigidbody</strong>, который и отвечает за физически корректное перемещение объекта.</p>
52 <p>Тут важно уточнить, что в режиме<strong>Transform</strong>для передвижения сферы мы использовали<strong>transform.Translate</strong>. А для режима<strong>Rigidbody</strong>в ход пошёл<strong>AddForce</strong>. В чём разница между ними, мы объясняли в <a>отдельном материале</a>. Если вкратце, то первый двигает объект без использования физики, а второй - с её помощью, благодаря чему набравшая скорость сфера не сразу останавливается, когда вы отпускаете кнопку. Её скорость затухает постепенно (при правильных настройках<strong>Rigidbody</strong>). Соответственно, каждая новая частица получает всё меньшее значение добавочной скорости, и кривая получается более плавной.</p>
52 <p>Тут важно уточнить, что в режиме<strong>Transform</strong>для передвижения сферы мы использовали<strong>transform.Translate</strong>. А для режима<strong>Rigidbody</strong>в ход пошёл<strong>AddForce</strong>. В чём разница между ними, мы объясняли в <a>отдельном материале</a>. Если вкратце, то первый двигает объект без использования физики, а второй - с её помощью, благодаря чему набравшая скорость сфера не сразу останавливается, когда вы отпускаете кнопку. Её скорость затухает постепенно (при правильных настройках<strong>Rigidbody</strong>). Соответственно, каждая новая частица получает всё меньшее значение добавочной скорости, и кривая получается более плавной.</p>
53 <p>Режим<strong>Custom</strong>позволяет вручную задать добавочную скорость для частиц по каждой из осей X, Y, Z. В примере ниже мы задали скорость для частиц по оси X равной 5. В итоге они стали двигаться вправо при появлении.</p>
53 <p>Режим<strong>Custom</strong>позволяет вручную задать добавочную скорость для частиц по каждой из осей X, Y, Z. В примере ниже мы задали скорость для частиц по оси X равной 5. В итоге они стали двигаться вправо при появлении.</p>
54 <p>Параметр<strong>Max Particles</strong>отвечает за то, сколько частиц от данного генератора одновременно может существовать в сцене. Если указанное число достигнуто, то новые частицы не создаются, пока не исчезнут старые.</p>
54 <p>Параметр<strong>Max Particles</strong>отвечает за то, сколько частиц от данного генератора одновременно может существовать в сцене. Если указанное число достигнуто, то новые частицы не создаются, пока не исчезнут старые.</p>
55 <p>Включённый параметр<strong>Auto Random Seed</strong>отвечает за то, чтобы частицы каждый раз создавались случайным образом. Лучше всего это видно при выключенном<strong>Looping</strong>, когда частицы создаются ровно один цикл генерации. Если<strong>Auto Random Seed</strong>выключить, то появится поле<strong>Random Seed</strong>, где можно указать число, на основе которого будут сгенерированы частицы. То есть генерация, например, при числе 210, всегда будет одинаковой, но она будет отличаться от генерации при числе 211, или 0, или любых других. Таким образом, если вам надо, чтобы частицы всегда вылетали одинаковым образом, то вы просто находите число, при котором генерация вас устраивает, и используете его. Также здесь есть кнопка<strong>Reseed</strong>, которое генерирует в поле<strong>Random Seed</strong>случайное число.</p>
55 <p>Включённый параметр<strong>Auto Random Seed</strong>отвечает за то, чтобы частицы каждый раз создавались случайным образом. Лучше всего это видно при выключенном<strong>Looping</strong>, когда частицы создаются ровно один цикл генерации. Если<strong>Auto Random Seed</strong>выключить, то появится поле<strong>Random Seed</strong>, где можно указать число, на основе которого будут сгенерированы частицы. То есть генерация, например, при числе 210, всегда будет одинаковой, но она будет отличаться от генерации при числе 211, или 0, или любых других. Таким образом, если вам надо, чтобы частицы всегда вылетали одинаковым образом, то вы просто находите число, при котором генерация вас устраивает, и используете его. Также здесь есть кнопка<strong>Reseed</strong>, которое генерирует в поле<strong>Random Seed</strong>случайное число.</p>
56 <em>Скриншот: Skillbox Media</em><p>Параметр<strong>Stop Action</strong>определяет, что произойдёт, когда система частиц закончит свою работу и все частицы исчезнут. Тут четыре варианта:</p>
56 <em>Скриншот: Skillbox Media</em><p>Параметр<strong>Stop Action</strong>определяет, что произойдёт, когда система частиц закончит свою работу и все частицы исчезнут. Тут четыре варианта:</p>
57 <ul><li><strong>None</strong>- ничего не произойдёт.</li>
57 <ul><li><strong>None</strong>- ничего не произойдёт.</li>
58 <li><strong>Disable</strong> - объект будет выключен.</li>
58 <li><strong>Disable</strong> - объект будет выключен.</li>
59 <li><strong>Destroy</strong> - объект будет уничтожен.</li>
59 <li><strong>Destroy</strong> - объект будет уничтожен.</li>
60 <li><strong>Callback</strong> - необходим, чтобы вызывать метод<strong>OnParticleSystemStopped ()</strong>в скрипте, подключённом к системе частиц, и, соответственно, выполнять всё, что вы в нём укажете.</li>
60 <li><strong>Callback</strong> - необходим, чтобы вызывать метод<strong>OnParticleSystemStopped ()</strong>в скрипте, подключённом к системе частиц, и, соответственно, выполнять всё, что вы в нём укажете.</li>
61 </ul><p><strong>Важно:</strong>параметр<strong>Stop Action</strong>не будет работать, если генерация частиц зациклена, то есть если вы поставили галочку у <strong>Looping</strong>.</p>
61 </ul><p><strong>Важно:</strong>параметр<strong>Stop Action</strong>не будет работать, если генерация частиц зациклена, то есть если вы поставили галочку у <strong>Looping</strong>.</p>
62 <p>Параметр<strong>Culling Mode</strong>определяет, как будет работать система частиц, когда окажется вне поля зрения камеры.</p>
62 <p>Параметр<strong>Culling Mode</strong>определяет, как будет работать система частиц, когда окажется вне поля зрения камеры.</p>
63 <ul><li><strong>Pause</strong> - останавливает симуляцию системы, пока она вне кадра.</li>
63 <ul><li><strong>Pause</strong> - останавливает симуляцию системы, пока она вне кадра.</li>
64 <li><strong>Pause and Catch-up</strong> - делает то же самое, но, когда система попадает в поле зрения камеры, симуляция приходит в такое состояние, чтобы казалось, будто никакой паузы в работе не было.</li>
64 <li><strong>Pause and Catch-up</strong> - делает то же самое, но, когда система попадает в поле зрения камеры, симуляция приходит в такое состояние, чтобы казалось, будто никакой паузы в работе не было.</li>
65 <li><strong>Always Simulate</strong> - система частиц работает независимо от того, видит её камера или нет.</li>
65 <li><strong>Always Simulate</strong> - система частиц работает независимо от того, видит её камера или нет.</li>
66 <li><strong>Automatic</strong> - для зацикленных систем включает<strong>Pause</strong>, когда они вне поля зрения, а для всех остальных включает<strong>Always Simulate</strong>.</li>
66 <li><strong>Automatic</strong> - для зацикленных систем включает<strong>Pause</strong>, когда они вне поля зрения, а для всех остальных включает<strong>Always Simulate</strong>.</li>
67 </ul><em>Скриншот: Skillbox Media</em><p>Параметр<strong>Ring Buffer Mode</strong>не даёт частицам с истёкшим сроком существования исчезать, пока их количество не достигнет значения, указанного в <strong>Max Particles</strong>. После того как значение будет достигнуто, старые частицы начнут заменяться новыми.</p>
67 </ul><em>Скриншот: Skillbox Media</em><p>Параметр<strong>Ring Buffer Mode</strong>не даёт частицам с истёкшим сроком существования исчезать, пока их количество не достигнет значения, указанного в <strong>Max Particles</strong>. После того как значение будет достигнуто, старые частицы начнут заменяться новыми.</p>
68 <p>Эти три модуля активны по умолчанию. Модуль<strong>Emission</strong>определяет, в каком количестве и как будут выбрасываться частицы. Есть несколько параметров. Первый<strong>Rate over Time</strong>определяет, сколько частиц будет создано за секунду. По умолчанию здесь выбрано значение 10.</p>
68 <p>Эти три модуля активны по умолчанию. Модуль<strong>Emission</strong>определяет, в каком количестве и как будут выбрасываться частицы. Есть несколько параметров. Первый<strong>Rate over Time</strong>определяет, сколько частиц будет создано за секунду. По умолчанию здесь выбрано значение 10.</p>
69 <em>Скриншот: Skillbox Media</em><p>Второй параметр,<strong>Rate</strong><strong>over Distance</strong>, позволяет настроить выброс частиц с привязкой к расстоянию, а не ко времени. Выброс в этом случае происходит через каждый пройденный юнит. Эта единица измерения равна одному метру (если вы создадите простой куб в сцене, то он как раз будет равен одному кубическому метру).</p>
69 <em>Скриншот: Skillbox Media</em><p>Второй параметр,<strong>Rate</strong><strong>over Distance</strong>, позволяет настроить выброс частиц с привязкой к расстоянию, а не ко времени. Выброс в этом случае происходит через каждый пройденный юнит. Эта единица измерения равна одному метру (если вы создадите простой куб в сцене, то он как раз будет равен одному кубическому метру).</p>
70 <p>Если вы выставите в этом параметре значение 1, то через каждый пройденный юнит будет создаваться по одной частице. Но в примере ниже мы выставили значение 10. Как видите, когда паровоз стоит, частицы не создаются. Когда же он начинает двигаться, то из его трубы валит пар.</p>
70 <p>Если вы выставите в этом параметре значение 1, то через каждый пройденный юнит будет создаваться по одной частице. Но в примере ниже мы выставили значение 10. Как видите, когда паровоз стоит, частицы не создаются. Когда же он начинает двигаться, то из его трубы валит пар.</p>
71 <p>Обратите внимание, что определять количество частиц мы можем не только с помощью одной постоянной цифры. Справа от поля для ввода значения есть маленький треугольник. Если на него нажать, то выпадет меню из четырёх пунктов, которые позволяют по разному задавать значение:</p>
71 <p>Обратите внимание, что определять количество частиц мы можем не только с помощью одной постоянной цифры. Справа от поля для ввода значения есть маленький треугольник. Если на него нажать, то выпадет меню из четырёх пунктов, которые позволяют по разному задавать значение:</p>
72 <ul><li><strong>Constant</strong> - одно постоянное число.</li>
72 <ul><li><strong>Constant</strong> - одно постоянное число.</li>
73 <li><strong>Curve</strong> - значение, определённое кривой.</li>
73 <li><strong>Curve</strong> - значение, определённое кривой.</li>
74 <li><strong>Random Between Two Constants</strong> - случайное значение между двух постоянных величин.</li>
74 <li><strong>Random Between Two Constants</strong> - случайное значение между двух постоянных величин.</li>
75 <li><strong>Random Between Two Curves</strong> - случайное значение выбирается между двумя кривыми.</li>
75 <li><strong>Random Between Two Curves</strong> - случайное значение выбирается между двумя кривыми.</li>
76 </ul><em>Скриншот: Skillbox Media</em><p>Третий пункт в модуле<strong>Emission</strong>отвечает за резкий выброс определённого количества частиц -<strong>Burst</strong>. Если вам надо сделать эффект взрыва, то этот параметр как раз и поможет настроить частицы как надо.</p>
76 </ul><em>Скриншот: Skillbox Media</em><p>Третий пункт в модуле<strong>Emission</strong>отвечает за резкий выброс определённого количества частиц -<strong>Burst</strong>. Если вам надо сделать эффект взрыва, то этот параметр как раз и поможет настроить частицы как надо.</p>
77 <p>Чтобы добавить эффект взрыва частиц, надо нажать "+" справа внизу. Для настройки поведения частиц есть пять параметров.</p>
77 <p>Чтобы добавить эффект взрыва частиц, надо нажать "+" справа внизу. Для настройки поведения частиц есть пять параметров.</p>
78 <ul><li><strong>Time</strong> - через сколько секунд после начала работы<strong>Particle System</strong>случится выброс частиц.</li>
78 <ul><li><strong>Time</strong> - через сколько секунд после начала работы<strong>Particle System</strong>случится выброс частиц.</li>
79 <li><strong>Count</strong> - сколько частиц будет создано.</li>
79 <li><strong>Count</strong> - сколько частиц будет создано.</li>
80 <li><strong>Cycles</strong> - сколько раз повторится генерация того количества частиц, которое указано в <strong>Count</strong>. Допустим, если параметр<strong>Count</strong>равен 2, а <strong>Cycles</strong> - 4, то при взрыве будет создано восемь частиц.</li>
80 <li><strong>Cycles</strong> - сколько раз повторится генерация того количества частиц, которое указано в <strong>Count</strong>. Допустим, если параметр<strong>Count</strong>равен 2, а <strong>Cycles</strong> - 4, то при взрыве будет создано восемь частиц.</li>
81 <li><strong>Interval</strong>- какой будет задержка между частицами при появлении. Хоть и кажется, что они появляются одновременно, на самом деле они создаются по очереди. Минимальный интервал между ними, выставленный в Unity по умолчанию, это 0,01. Если поставить больше, то вы увидите, как частицы вылетают из генератора, словно автоматная очередь.</li>
81 <li><strong>Interval</strong>- какой будет задержка между частицами при появлении. Хоть и кажется, что они появляются одновременно, на самом деле они создаются по очереди. Минимальный интервал между ними, выставленный в Unity по умолчанию, это 0,01. Если поставить больше, то вы увидите, как частицы вылетают из генератора, словно автоматная очередь.</li>
82 <li><strong>Probability</strong> - вероятность, с которой частицы будут созданы. Значение можно задать в интервале от 0 до 1. При 0 частицы точно не появятся. При 1 - точно появятся.</li>
82 <li><strong>Probability</strong> - вероятность, с которой частицы будут созданы. Значение можно задать в интервале от 0 до 1. При 0 частицы точно не появятся. При 1 - точно появятся.</li>
83 </ul><p>Далее перейдём к другому обязательному модулю -<strong>Shape</strong>. Он определяет пространство, в котором создаются частицы. Это может быть геометрический объём в виде фигуры или некая поверхность. Исходя из формы, определяется и направление, в котором полетят частицы. Поставить нужную форму можно в параметре<strong>Shape</strong>через выпадающее меню.</p>
83 </ul><p>Далее перейдём к другому обязательному модулю -<strong>Shape</strong>. Он определяет пространство, в котором создаются частицы. Это может быть геометрический объём в виде фигуры или некая поверхность. Исходя из формы, определяется и направление, в котором полетят частицы. Поставить нужную форму можно в параметре<strong>Shape</strong>через выпадающее меню.</p>
84 - <em>Скриншот: Skillbox Media</em><p>Оратите внимание, что здесь 13 пунктов. Первые пять - это трёхмерные геометрические фигуры:<strong>Sphere</strong>,<strong>Hemisphere</strong>,<strong>Cone</strong>,<strong>Donut</strong>,<strong>Box</strong>. Их размеры, угол и положение в пространстве можно изменить через параметры, указанные ниже в модуле.</p>
84 + <em>Скриншот: Skillbox Media</em><p>Обратите внимание, что здесь 13 пунктов. Первые пять - это трёхмерные геометрические фигуры:<strong>Sphere</strong>,<strong>Hemisphere</strong>,<strong>Cone</strong>,<strong>Donut</strong>,<strong>Box</strong>. Их размеры, угол и положение в пространстве можно изменить через параметры, указанные ниже в модуле.</p>
85 <p>Далее три пункта -<strong>Mesh</strong>,<strong>Mesh Renderer</strong>и <strong>Skinned Mesh Renderer</strong>, - которые позволяют создавать частицы на поверхности полигональной сетки. Частицы в этом случае испускаются в том же направлении, в котором смотрит<a>нормаль</a>. При этом вариант<strong>Skinned Mesh</strong>Renderer предназначен для мешей, которые подключены к скелету и в связи с этим могут деформироваться при движении суставов.</p>
85 <p>Далее три пункта -<strong>Mesh</strong>,<strong>Mesh Renderer</strong>и <strong>Skinned Mesh Renderer</strong>, - которые позволяют создавать частицы на поверхности полигональной сетки. Частицы в этом случае испускаются в том же направлении, в котором смотрит<a>нормаль</a>. При этом вариант<strong>Skinned Mesh</strong>Renderer предназначен для мешей, которые подключены к скелету и в связи с этим могут деформироваться при движении суставов.</p>
86 Например, со Skinned Mesh Renderer можно сделать вот такой эффект<em>Видео: Kurt Dekker/ YouTube</em><p><strong>Sprite</strong>и <strong>Sprite Renderer</strong>необходимы, если частицы должны генерироваться по форме какого-либо спрайта. А пункты<strong>Circle</strong>,<strong>Edge</strong>и <strong>Rectangle</strong> - это двухмерные фигуры (круг, прямая линия, четырёхугольник), генерирующие частицы.</p>
86 Например, со Skinned Mesh Renderer можно сделать вот такой эффект<em>Видео: Kurt Dekker/ YouTube</em><p><strong>Sprite</strong>и <strong>Sprite Renderer</strong>необходимы, если частицы должны генерироваться по форме какого-либо спрайта. А пункты<strong>Circle</strong>,<strong>Edge</strong>и <strong>Rectangle</strong> - это двухмерные фигуры (круг, прямая линия, четырёхугольник), генерирующие частицы.</p>
87 <em>Скриншот: Skillbox Media</em><p>Модуль<strong>Renderer</strong>отвечает за <a>внешний вид</a>частиц. Будут это звёздочки, искры, пули, камни, капли, сгустки дыма?.. Здесь также много параметров для настройки.</p>
87 <em>Скриншот: Skillbox Media</em><p>Модуль<strong>Renderer</strong>отвечает за <a>внешний вид</a>частиц. Будут это звёздочки, искры, пули, камни, капли, сгустки дыма?.. Здесь также много параметров для настройки.</p>
88 <p>Первый и один самых важных из них - это<strong>Render Mode</strong>. Он позволяет определить, чем именно будут ваши частицы - плоскими спрайтами или объёмными моделями. В первом случае надо выбирать вариант<strong>Billboard</strong>. Это спрайт, который всегда смотрит на камеру. У него тоже есть варианты. Так,<strong>Stretched Billboard</strong>нужен для применения масштабирования.<strong>Horizontal Billboard</strong>делает частицы параллельными полу.<strong>Vertical Billboard</strong>делает частицы перпендикулярными оси Y. А для того, чтобы частицы были трёхмерными объектами, надо использовать вариант<strong>Mesh</strong>.</p>
88 <p>Первый и один самых важных из них - это<strong>Render Mode</strong>. Он позволяет определить, чем именно будут ваши частицы - плоскими спрайтами или объёмными моделями. В первом случае надо выбирать вариант<strong>Billboard</strong>. Это спрайт, который всегда смотрит на камеру. У него тоже есть варианты. Так,<strong>Stretched Billboard</strong>нужен для применения масштабирования.<strong>Horizontal Billboard</strong>делает частицы параллельными полу.<strong>Vertical Billboard</strong>делает частицы перпендикулярными оси Y. А для того, чтобы частицы были трёхмерными объектами, надо использовать вариант<strong>Mesh</strong>.</p>
89 <em>Частицы могут быть объёмными, как здесь</em><p>Помимо этого, в системе частиц Unity есть ещё 21 модуль. Они неактивны по умолчанию, но каждый из них уточняет внешний вид и поведение частиц и содержит массу настроек.</p>
89 <em>Частицы могут быть объёмными, как здесь</em><p>Помимо этого, в системе частиц Unity есть ещё 21 модуль. Они неактивны по умолчанию, но каждый из них уточняет внешний вид и поведение частиц и содержит массу настроек.</p>
90 <p>Например, модуль<strong>Trails</strong>оставляет за частицами след, а <strong>Color over Lifetime</strong>определяет, как будет меняться цвет частиц за время их существования. Но о них мы поговорим подробнее в другой раз, так как их лучше рассматривать в контексте конкретных примеров создания конкретных эффектов.</p>
90 <p>Например, модуль<strong>Trails</strong>оставляет за частицами след, а <strong>Color over Lifetime</strong>определяет, как будет меняться цвет частиц за время их существования. Но о них мы поговорим подробнее в другой раз, так как их лучше рассматривать в контексте конкретных примеров создания конкретных эффектов.</p>
91 <a>Научитесь: Профессия Геймдизайнер с нуля до PRO Узнать больше</a>
91 <a>Научитесь: Профессия Геймдизайнер с нуля до PRO Узнать больше</a>