MinMaxGradient
struct in
UnityEngine
Suggest a change
Success!
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.
Close
Submission failed
For 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.
Close
Switch to Manual
no example available in JavaScript
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;
}
}
no example available in JavaScript
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);
}
}
no example available in JavaScript
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;
}
}
no example available in JavaScript
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);
}
}
Variables
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. |
Public Functions
Evaluate | Manually query the gradient to calculate colors based on what mode it is in. |