Unity 6.3
0 онлайн 62 гостей 3 в системе
Вход

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Вручную запрашивать градиент для вычисления цветов в зависимости от режима.