private void OnChangeColorStopValueRequested(string id, Color value) { ParticleEffect particleEffect = system.GetParticleEffect(pfxId); List <ParticleEffectContent.ColorStop> stops = particleEffect.content.colorOverLifetime; ParticleEffectContent.ColorStop stop = stops.Find((cs) => cs.id == id); stop.value = value; system.PutParticleEffect(particleEffect); }
private void OnChangeColorStopPositionRequested(string id, float position) { ParticleEffect particleEffect = system.GetParticleEffect(pfxId); List <ParticleEffectContent.ColorStop> stops = particleEffect.content.colorOverLifetime; ParticleEffectContent.ColorStop stop = stops.Find((cs) => cs.id == id); stop.position = position; stops.Sort((ParticleEffectContent.ColorStop cs1, ParticleEffectContent.ColorStop cs2) => { return(cs1.position.CompareTo(cs2.position)); }); system.PutParticleEffect(particleEffect); }
private static Gradient ColorTuplesToGradient(List <ParticleEffectContent.ColorStop> colors) { Gradient colorGradient = new Gradient(); GradientColorKey[] gradientColorKeys = new GradientColorKey[colors.Count]; GradientAlphaKey[] gradientAlphaKeys = new GradientAlphaKey[colors.Count]; for (int i = 0; i < colors.Count; i++) { ParticleEffectContent.ColorStop stop = colors[i]; gradientColorKeys[i] = new GradientColorKey(stop.value, stop.position); gradientAlphaKeys[i] = new GradientAlphaKey(stop.value.a, stop.position); } colorGradient.SetKeys(gradientColorKeys, gradientAlphaKeys); return(colorGradient); }