struct in UnityEngine
/
Implemented in:UnityEngine.ParticleSystemModule
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
CloseFor some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
CloseMinMaxGradient contains two Gradients, and returns a Color based on ParticleSystem.MinMaxGradient.mode. Depending on the mode, the Color returned may be randomized. Gradients are edited via the ParticleSystem Inspector once a ParticleSystemGradientMode requiring them has been selected. Some modes do not require gradients, only colors.
See Also: 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); } }
color | Set a constant color. |
colorMax | Set a constant color for the upper bound. |
colorMin | Set a constant color for the lower bound. |
gradient | Set the gradient. |
gradientMax | Set a gradient for the upper bound. |
gradientMin | Set a gradient for the lower bound. |
mode | Set the mode that the min-max gradient will use to evaluate colors. |
ParticleSystem.MinMaxGradient | A single constant color for the entire gradient. |
Evaluate | Manually query the gradient to calculate colors based on what mode it is in. |