Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты
к Руководству

MinMaxCurve

структура в UnityEngine / Реализовано в: UnityEngine.ParticleSystemModule

Описание

Интерфейс скрипта для кривой Min-Max.

Кривая мин.-макс. описывает функции, которые принимают значение между минимальным и максимальным пределом и возвращают значение на основе ParticleSystem.MinMaxCurve.mode. В зависимости от режима это может возвращать рандомизированные значения. Для режимов, требующих кривых, возвращаемое значение зависит от одной или двух кривых, разработанных в Инспекторе ParticleSystem, которые могут быть оценены как одно значение между -n и n, где n — константа, также установленная в Инспекторе. Дополнительную информацию см. в разделе ParticleSystemCurveMode.

Смотрите так же: ParticleSystem.

using UnityEngine;

// This example shows setting a constant rate value. public class ConstantRateExample : MonoBehaviour { ParticleSystem myParticleSystem; ParticleSystem.EmissionModule emissionModule;

void Start() { // Get the system and the emission module. myParticleSystem = GetComponent<ParticleSystem>(); emissionModule = myParticleSystem.emission;

GetValue(); SetValue(); }

void GetValue() { print("The constant value is " + emissionModule.rateOverTime.constant); }

void SetValue() { emissionModule.rateOverTime = 10.0f; } }

using UnityEngine;

// This example shows using 2 constants to drive the rate. public class TwoConstantsRateExample : MonoBehaviour { ParticleSystem myParticleSystem; ParticleSystem.EmissionModule emissionModule;

void Start() { // Get the system and the emission module. myParticleSystem = GetComponent<ParticleSystem>(); emissionModule = myParticleSystem.emission;

GetValue(); SetValue(); }

void GetValue() { print(string.Format("The constant values are: min {0} max {1}.", emissionModule.rateOverTime.constantMin, emissionModule.rateOverTime.constantMax)); }

void SetValue() { emissionModule.rateOverTime = new ParticleSystem.MinMaxCurve(0.0f, 10.0f); } }

using UnityEngine;

// This example shows using a curve to drive the rate. public class CurveRateExample : MonoBehaviour { ParticleSystem myParticleSystem; ParticleSystem.EmissionModule emissionModule;

// We can "scale" the curve with this value. It gets multiplied by the curve. public float scalar = 1.0f;

AnimationCurve ourCurve;

void Start() { // Get the system and the emission module. myParticleSystem = GetComponent<ParticleSystem>(); emissionModule = myParticleSystem.emission;

// A simple linear curve. ourCurve = new AnimationCurve(); ourCurve.AddKey(0.0f, 0.0f); ourCurve.AddKey(1.0f, 1.0f);

// Apply the curve. emissionModule.rateOverTime = new ParticleSystem.MinMaxCurve(scalar, ourCurve);

// In 5 seconds we will modify the curve. Invoke("ModifyCurve", 5.0f); }

void ModifyCurve() { // Add a key to the current curve. ourCurve.AddKey(0.5f, 0.0f);

// Apply the changed curve. emissionModule.rate = new ParticleSystem.MinMaxCurve(scalar, ourCurve); } }

using UnityEngine;

// This example shows using 2 curves to drive the rate. public class TwoCurveRateExample : MonoBehaviour { ParticleSystem myParticleSystem; ParticleSystem.EmissionModule emissionModule;

AnimationCurve ourCurveMin; AnimationCurve ourCurveMax;

// We can "scale" the curves with this value. It gets multiplied by the curves. public float scalar = 1.0f;

void Start() { // Get the system and the emission module. myParticleSystem = GetComponent<ParticleSystem>(); emissionModule = myParticleSystem.emission;

// A horizontal straight line at value 1. ourCurveMin = new AnimationCurve(); ourCurveMin.AddKey(0.0f, 1.0f); ourCurveMin.AddKey(1.0f, 1.0f);

// A horizontal straight line at value 0.5. ourCurveMax = new AnimationCurve(); ourCurveMax.AddKey(0.0f, 0.5f); ourCurveMax.AddKey(1.0f, 0.5f);

// Apply the curves. emissionModule.rateOverTime = new ParticleSystem.MinMaxCurve(scalar, ourCurveMin, ourCurveMax);

// In 5 seconds we will modify the curve. Invoke("ModifyCurve", 5.0f); }

void ModifyCurve() { // Create a "pinch" point. ourCurveMin.AddKey(0.5f, 0.7f); ourCurveMax.AddKey(0.5f, 0.6f);

// Apply the changed curve. emissionModule.rateOverTime = new ParticleSystem.MinMaxCurve(scalar, ourCurveMin, ourCurveMax); } }

using UnityEngine;

// This example shows how to retrieve existing keys from a MinMaxCurve public class ReadCurveExample : MonoBehaviour { void Start() { // Get the system and the emission module. var myParticleSystem = GetComponent<ParticleSystem>(); var emissionModule = myParticleSystem.emission;

// Get the curve (assuming the MinMaxCurve is in Curve mode) AnimationCurve curve = emissionModule.rateOverTime.curve;

// Get the keys Keyframe[] keys = curve.keys; } }

Свойства

constant Устанавливает постоянное значение.
constantMax Устанавливает константу для верхней границы.
constantMin Устанавливает константу для нижней границы.
curve Устанавливает кривую.
curveMax Устанавливает кривую для верхней границы.
curveMin Устанавливает кривую для нижней границы.
curveMultiplier Устанавливает множитель для применения к кривым.
mode Устанавливает режим, который кривая минимум-максимум использует для оценки значений.

Конструкторы

ParticleSystem.MinMaxCurve Одно постоянное значение для всей кривой.

Публичные Методы

Evaluate Вручную запрашивает кривую, чтобы вычислить значения в зависимости от того, в каком режиме она находится.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3