MinMaxGradient
структура в UnityEngine
Выполнено в:UnityEngine.ParticleSystemModule
Описание
Интерфейс скриптов для Min-Max Gradient.
Это содержит два Gradients, и возвращает Color на основе ParticleSystem.MinMaxGradient.mode. В зависимости от режима, это может возвращать случайное значение. Градиенты редактируются через ParticleSystem Inspector после того, как ParticleSystemGradientMode, требующий их, был выбран. Некоторые режимы не требуют градиентов, только цвета. Дополнительные ресурсы: ParticleSystem.
using UnityEngine;
// This example shows setting a constant color value. public class ConstantColorExample : MonoBehaviour { ParticleSystem myParticleSystem; ParticleSystem.ColorOverLifetimeModule colorModule;
void Start() { // Get the system and the color module. myParticleSystem = GetComponent<ParticleSystem>(); colorModule = myParticleSystem.colorOverLifetime;
GetValue(); SetValue(); }
void GetValue() { print("The constant color is " + colorModule.color.color); }
void SetValue() { colorModule.color = Color.red; } }
using UnityEngine;
// This example shows using 2 colors to drive the color over lifetime. public class TwoConstantColorsExample : MonoBehaviour { ParticleSystem myParticleSystem; ParticleSystem.ColorOverLifetimeModule colorModule;
void Start() { // Get the system and the color module. myParticleSystem = GetComponent<ParticleSystem>(); colorModule = myParticleSystem.colorOverLifetime;
GetValue(); SetValue(); }
void GetValue() { print(string.Format("The constant values are: min {0} max {1}.", colorModule.color.colorMin, colorModule.color.colorMax)); }
void SetValue() { colorModule.color = new ParticleSystem.MinMaxGradient(Color.green, Color.red); } }
using UnityEngine;
// This example shows using a gradient to drive the color over lifetime. public class GradientColorExample : MonoBehaviour { ParticleSystem myParticleSystem; ParticleSystem.ColorOverLifetimeModule colorModule; Gradient ourGradient;
void Start() { // Get the system and the color module. myParticleSystem = GetComponent<ParticleSystem>(); colorModule = myParticleSystem.colorOverLifetime;
// A simple 2 color gradient with a fixed alpha of 1.0f. float alpha = 1.0f; ourGradient = new Gradient(); ourGradient.SetKeys( new GradientColorKey[] { new GradientColorKey(Color.green, 0.0f), new GradientColorKey(Color.red, 1.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(alpha, 0.0f), new GradientAlphaKey(alpha, 1.0f) } );
// Apply the gradient. colorModule.color = ourGradient;
// In 5 seconds we will modify the gradient. Invoke("ModifyGradient", 5.0f); }
void ModifyGradient() { // Reduce the alpha float alpha = 0.5f; ourGradient.SetKeys( new GradientColorKey[] { new GradientColorKey(Color.green, 0.0f), new GradientColorKey(Color.red, 1.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(alpha, 0.0f), new GradientAlphaKey(alpha, 1.0f) } );
// Apply the changed gradient. colorModule.color = ourGradient; } }
using UnityEngine;
// This example shows using 2 gradients to drive the color over lifetime. public class TwoGradientColorExample : MonoBehaviour { ParticleSystem myParticleSystem; ParticleSystem.ColorOverLifetimeModule colorModule;
Gradient ourGradientMin; Gradient ourGradientMax;
void Start() { // Get the system and the emission module. myParticleSystem = GetComponent<ParticleSystem>(); colorModule = myParticleSystem.colorOverLifetime;
// A simple 2 color gradient with a fixed alpha of 1.0f. float alpha1 = 1.0f; ourGradientMin = new Gradient(); ourGradientMin.SetKeys( new GradientColorKey[] { new GradientColorKey(Color.green, 0.0f), new GradientColorKey(Color.red, 1.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(alpha1, 0.0f), new GradientAlphaKey(alpha1, 1.0f) } );
// A simple 2 color gradient with a fixed alpha of 0.0f. float alpha2 = 0.0f; ourGradientMax = new Gradient(); ourGradientMax.SetKeys( new GradientColorKey[] { new GradientColorKey(Color.green, 0.0f), new GradientColorKey(Color.red, 1.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(alpha2, 0.0f), new GradientAlphaKey(alpha2, 1.0f) } );
// Apply the gradients. colorModule.color = new ParticleSystem.MinMaxGradient(ourGradientMin, ourGradientMax);
// In 5 seconds we will modify the gradient. Invoke("ModifyGradient", 5.0f); }
void ModifyGradient() { // Reduce the alpha float alpha = 0.5f; ourGradientMin.SetKeys( new GradientColorKey[] { new GradientColorKey(Color.green, 0.0f), new GradientColorKey(Color.red, 1.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(alpha, 0.0f), new GradientAlphaKey(alpha, 1.0f) } );
// Apply the changed gradients. colorModule.color = new ParticleSystem.MinMaxGradient(ourGradientMin, ourGradientMax); } }
using UnityEngine;
// This example shows how to retrieve existing color and alpha keys from a MinMaxGradient public class ReadGradientExample : MonoBehaviour { void Start() { // Get the system and the color module. var myParticleSystem = GetComponent<ParticleSystem>(); var colorModule = myParticleSystem.colorOverLifetime;
// Get the gradient (assuming the MinMaxGradient is in Gradient mode) Gradient gradient = colorModule.color.gradient;
// Get the keys GradientColorKey[] colorKeys = gradient.colorKeys; GradientAlphaKey[] alphaKeys = gradient.alphaKeys; } }
Свойства
| Свойство | Описание |
|---|---|
| color | Установить постоянный цвет. |
| colorMax | Установить постоянный цвет для верхней границы. |
| colorMin | Установить постоянный цвет для нижней границы. |
| gradient | Установите градиент. |
| gradientMax | Установить градиент для верхней границы. |
| gradientMin | Установить градиент для нижней границы. |
| mode | Устанавливает режим, в котором Градиент Мин-Макс использует цвета для оценки. |
Конструкторы
| Конструктор | Описание |
|---|---|
| ParticleSystem.MinMaxGradient | Один постоянный цвет для всего градиента. |
Открытые методы
| Метод | Описание |
|---|---|
| Evaluate | Вручную запрашивать градиент для вычисления цветов в зависимости от режима. |