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);
}
}
Properties 属性
| 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 Methods 公共方法
| Evaluate | | Manually query the gradient to calculate colors based on what mode it is in. |