ParticleSystem
Описание
Программный интерфейс встроенной Particle System — мощной и универсальной реализации системы частиц в Unity.
Общие параметры
Общие параметры Particle System хранятся внутри специального Главного модуля. Эти параметры видны в Inspector над всеми другими модулями.
В сценарии эти параметры доступны через ParticleSystem.main.
Доступ к свойствам модуля
Particle System свойства группируются по модулю, к которому они принадлежат, например ParticleSystem.noise и ParticleSystem.emission. Эти свойства являются структурами, но ведут себя не как обычные структуры C#. Они представляют собой прямые интерфейсы к нативному коду, поэтому важно понимать, как работать с ними в отличие от обычной структуры C#.
Ключевое отличие в том, что присваивать структуру обратно компоненту Particle System не требуется. Когда вы задаёте любое свойство у структуры модуля, Unity сразу же присваивает это значение системе частиц.
Кроме того, поскольку каждый модуль является структурой, его нужно сохранить в локальную переменную, прежде чем присваивать модулю новые значения. Например, вместо:
ParticleSystem.emission.enabled = true; // Doesn't compile
напишите:
var emission = ParticleSystem.emission; // Stores the module in a local variable
emission.enabled = true; // Applies the new value directly to the Particle System
Множители эффекта модуля
Каждый модуль имеет специальные свойства мультипликатора, которые позволяют изменять общий эффект кривой без необходимости редактирования самой кривой. Эти свойства мультипликатора названы в честь кривой, на которую они влияют — например, ParticleSystem.emission.rateMultiplier управляет общим эффектом ParticleSystem.emission.rate в данной системе.
Константа значения
Параметры поддерживают сокращенную нотацию для простых значений констант. Чтобы установить значение константы для параметра, все, что вам нужно сделать, это назначить ему число. Нет необходимости создавать MinMaxCurve или MinMaxGradient объект в ParticleSystemCurveMode.Constant режим.
Например, вместо:
var emission = ParticleSystem.emission;
emission.rate = new ParticleSystem.MinMaxCurve(5.0f);
напишите:
var emission = ParticleSystem.emission;
emission.rate = 5.0f;
Записка об исполнении бюджета: когда вы задаёте свойства модулей частиц, настройки немедленно передаются в нативный код. Это обеспечивает наилучшую производительность. Это также означает, что задание свойств у структуры модуля не устанавливает в скрипте нечто, что затем нужно возвращать в Particle System, — всё происходит автоматически.
Дополнительные ресурсы: Particle.
Свойства
| Свойство | Описание |
|---|---|
| collision | Программный интерфейс модуля CollisionModule системы Particle System. |
| colorBySpeed | Программный интерфейс модуля ColorByLifetimeModule системы Particle System. |
| colorOverLifetime | Программный интерфейс модуля ColorOverLifetimeModule системы Particle System. |
| customData | Программный интерфейс модуля CustomDataModule системы Particle System. |
| emission | Программный интерфейс модуля EmissionModule системы Particle System. |
| externalForces | Программный интерфейс модуля ExternalForcesModule системы Particle System. |
| forceOverLifetime | Программный интерфейс модуля ForceOverLifetimeModule системы Particle System. |
| has3DParticleRotations | Определяет, вращает ли Particle System свои частицы только вокруг оси Z или система указывает отдельные значения для осей X, Y и Z. |
| hasNonUniformParticleSizes | Определяет, использует ли Particle System одно значение для ширины и высоты (и глубины, при использовании мешей), или система указывает разные значения для каждой оси. |
| inheritVelocity | Программный интерфейс модуля InheritVelocityModule системы Particle System. |
| isEmitting | Определяет, испускает ли Particle System частицы. Particle System может прекратить испускать частицы, когда его эмиссионный модуль закончился, он был приостановлен или если система была остановлена с помощью Stop с флагом StopEmitting. Возобновить испускание частиц можно, вызвав Play. |
| isPaused | Определяет, приостановлен ли Particle System. |
| isPlaying | Определяет, играет ли Particle System. |
| isStopped | Определяет, находится ли Particle System в остановленном состоянии. |
| lifetimeByEmitterSpeed | Программный интерфейс модуля Lifetime By Emitter Speed системы Particle System. |
| lights | Программный интерфейс модуля LightsModule системы Particle System. |
| limitVelocityOverLifetime | Программный интерфейс модуля LimitVelocityOverLifetimeModule системы Particle System. . |
| main | Доступ к основным настройкам Particle System. |
| noise | Программный интерфейс модуля NoiseModule системы Particle System. |
| particleCount | Текущее количество частиц (только для чтения). Число не включает частицы дочерних систем частиц |
| proceduralSimulationSupported | Определяет, поддерживает ли данная система процедурное моделирование. |
| randomSeed | Переопределить случайное семя, используемое для выброса Particle System. |
| rotationBySpeed | Программный интерфейс модуля RotationBySpeedModule системы Particle System. |
| rotationOverLifetime | Программный интерфейс модуля RotationOverLifetimeModule системы Particle System. |
| shape | Программный интерфейс модуля ShapeModule системы Particle System. |
| sizeBySpeed | Программный интерфейс модуля SizeBySpeedModule системы Particle System. |
| sizeOverLifetime | Программный интерфейс модуля SizeOverLifetimeModule системы Particle System. |
| subEmitters | Программный интерфейс модуля SubEmittersModule системы Particle System. |
| textureSheetAnimation | Программный интерфейс модуля TextureSheetAnimationModule системы Particle System. |
| time | Позиция воспроизведения в секундах. |
| totalTime | Общее время воспроизведения в секундах, включая настройку Задержка начала. |
| trails | Программный интерфейс модуля TrailsModule системы Particle System. |
| trigger | Программный интерфейс модуля TriggerModule системы Particle System. |
| useAutoRandomSeed | Управляет тем, использует ли Particle System автоматически генерируемое случайное число для генератора случайных чисел. |
| velocityOverLifetime | Программный интерфейс модуля VelocityOverLifetimeModule системы Particle System. |
Открытые методы
| Метод | Описание |
|---|---|
| AllocateAxisOfRotationAttribute | Обеспечивает выделение массива атрибутов частиц axisOfRotations. |
| AllocateCustomDataAttribute | Гарантирует выделение массивов атрибутов частиц customData1 и customData2. |
| AllocateMeshIndexAttribute | Обеспечивает выделение массива атрибутов частиц meshIndices. |
| Clear | Удалить все частицы в Particle System. |
| Emit | Немедленно подсчитайте частицы. |
| GetCustomParticleData | Получить поток пользовательских данных по частицам. |
| GetParticles | Получает частицы этого Particle System. |
| GetPlaybackState | Возвращает все данные, относящиеся к текущему внутреннему состоянию Particle System. |
| GetTrails | Возвращает все данные, относящиеся к текущему внутреннему состоянию Particle System Trails. |
| IsAlive | Содержит ли Particle System какие-либо живые частицы, или он будет производить больше? |
| Pause | Приостанавливает работу системы, чтобы новые частицы не высвобождались, а существующие частицы не обновлялись. |
| Play | Запускает Particle System и перенастраивает время воспроизведения на 0. |
| SetCustomParticleData | Установить поток пользовательских данных по частицам. |
| SetParticles | Устанавливает частицы этого Particle System. |
| SetParticlesAndTrails | Устанавливает частицы и следы этого Particle System. |
| SetPlaybackState | Используйте этот метод с результатами предыдущего вызова ParticleSystem.GetPlaybackState, чтобы восстановить Particle System в состояние, сохранённое в объекте playbackState. |
| Simulate | Быстрый продвижение вперед Particle System путем имитации частиц в течение заданного периода времени, затем приостанавливает его. |
| Stop | Остановка воспроизведения Particle System с помощью предоставленного поведения остановки. |
| TriggerSubEmitter | Включает указанный суб-эмиттер на всех частицах Particle System. |
Статические методы
| Метод | Описание |
|---|---|
| ResetPreMappedBufferMemory | Сброс кэша зарезервированной графической памяти, используемой для эффективного отображения систем частиц. |
| SetMaximumPreMappedBufferCounts | Ограничивает количество графической памяти, которое Unity резервирует для эффективного отображения систем частиц. |
Унаследованные члены 4
Свойства
| Свойство | Описание |
|---|---|
| gameObject | GameObject, к которому прикреплен данный компонент. Компонент всегда прикрепляется к игровому объекту. |
| tag | Тег этого игрового объекта. |
| transform | Transform прикреплен к этому GameObject. |
| transformHandle | TransformHandle этого GameObject. |
| hideFlags | Должен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем? |
| name | Имя объекта. |
Открытые методы
| Метод | Описание |
|---|---|
| BroadcastMessage | Вызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте или любом из его дочерей. |
| CompareTag | Проверяет тег GameObject на соответствие определенному тегу. |
| GetComponent | Получает ссылку на компонент типа T на том же GameObject, что и указанный компонент. |
| GetComponentInChildren | Получает ссылку на компонент типа T на том же GameObject, что и указанный компонент, или на любого ребенка GameObject. |
| GetComponentIndex | Получает индекс компонента на его родительском GameObject. |
| GetComponentInParent | Получает ссылку на компонент типа T на том же GameObject, что и указанный компонент, или на любой родитель GameObject. |
| GetComponents | Получает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент. |
| GetComponentsInChildren | Получает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент, и на любого ребенка GameObject. |
| GetComponentsInParent | Получает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент, и любой родитель GameObject. |
| SendMessage | Вызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте. |
| SendMessageUpwards | Вызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте и на каждом предшественнике поведения. |
| TryGetComponent | Получает компонент указанного типа, если он существует. |
| GetInstanceID | Получает экземпляр ID объекта. |
| ToString | Возвращает имя объекта. |
Статические методы
| Метод | Описание |
|---|---|
| Destroy | Удаляет GameObject, компонент или ресурс. |
| DestroyImmediate | Немедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования. |
| DontDestroyOnLoad | Не уничтожать целевой Объект при загрузке нового Scene. |
| FindAnyObjectByType | Получает любой активный загруженный объект типа Type. |
| FindFirstObjectByType | Получает первый активный загруженный объект типа Type. |
| FindObjectsByType | Получает список всех загруженных объектов типа Type. |
| Instantiate | Клонирует исходный объект и возвращает клон. |
| InstantiateAsync | Захватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation. |
Операторы
| Оператор | Описание |
|---|---|
| bool | Существует ли объект? |
| оператор!= | Сравнивает, если два объекта ссылаются на разные объекты. |
| оператор == | Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту. |