Unity2D Particle System - рандомизирующий слой или значение Z-преобразования для появления перед / позади / того же слоя, что и другие игровые объекты - PullRequest
0 голосов
/ 15 января 2020

В настоящее время я работаю над своей погодной системой для проекта 2D игры Unity. То, что я пытаюсь выполнить sh, - это случайное распределение слоя, на котором будет появляться частица, так что иногда она будет появляться позади других спрайтов, таких как игрок или здания, иногда впереди, а иногда сталкиваться с ними (в том же слое) .

Я относительно новичок в системе частиц в целом, но после долгих тренировок я достиг своих целей, кроме этой.

Я в основном хочу иметь возможность рандомизировать каждую частицу, чтобы иметь Например, значение Z равно -1, 0 или 1, при этом игрок / другие объекты потенциально находятся на 0, где частицы будут сталкиваться с ними. Чтобы визуализировать, вот поведение, которое у меня сейчас есть, когда каждая частица сталкивается с объектами, когда я хочу примерно от 1/3 до: https://i.imgur.com/vplFcye.gifv

Возможно, вместо того, чтобы работать с Z позиционные значения, я, возможно, должен думать больше с точки зрения слоев? Рандомизация слоя, на котором появляются частицы, и, следовательно, то, с чем они могут взаимодействовать, но в любом случае я не могу найти способ сценария или установить в инспекторе возможность изменить значение этого слоя / z.

Я рассмотрел использование трехчастичных систем, которые, я полагаю, достигли бы sh моих целей, но не являются идеальными и потенциально могут нанести ущерб производительности?

Если у кого-то есть понимание, возможно, я просто пропустил действительно очевидная переменная / настройка в инспекторе даже.

Спасибо.

1 Ответ

1 голос
/ 15 января 2020

Возможно, это не самое элегантное решение для этого, но вы можете установить для своей формы Emission значение Me sh, тип для Edge и использовать пользовательский me sh, который состоит из 3 отдельных прямоугольников, по одному для каждой передней / задней части / средний слой. Я проверил это, и оно, кажется, работает хорошо:

Three Edge System

Единственная проблема, с которой я столкнулся, это то, что я первоначально попробовал это с моделью, которая была всего 3 ребер, но обнаружил, что импортер Unity обрезает ребра, не прикрепленные к граням, поэтому мне пришлось сделать из них три грани почти нулевой ширины в моем me sh.

...