- Home /
Getting a ParticleSystem to constantly inherit colour from its Material
I have a script which changes a Material's colour over time. The Material is attached to some ParticleSystem objects. The ParticleSystems inherit the Material colour on instantiation, but do not continuously inherit the colour of the Material over time, meaning they will remain the same colour they were instantiated with. Regular GameObjects continuously inherit the material colour over time, as intended.
I imagine the problem is related to the ParticleSystems only using the Material colour to set their "Start Color" property. Does anyone know of a way I can make it so that the ParticleSystem colour always correlates to the material's colour? Rather than just correlating on instantiation.
My script so far (apologies for my amateur programming):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Blackout : MonoBehaviour {
public Material spriteDefaultMaterial = null;
public float blackoutRate = 3.0f;
public float duration = 5.0f;
private Blackout thisScript = null;
private float timer = 0.0f;
public Color blackoutColor = Color.white;
void Awake () {
thisScript = GetComponent<Blackout>();
}
void OnEnable () {
timer = 0.0f;
}
void Update () {
timer += Time.deltaTime;
if (timer < blackoutRate) {
blackoutColor = Color.Lerp(Color.white, Color.black, timer / blackoutRate);
spriteDefaultMaterial.color = blackoutColor;
}
else if (timer > blackoutRate + duration) {
blackoutColor = Color.Lerp(Color.black, Color.white, (timer - (blackoutRate + duration)) / blackoutRate);
spriteDefaultMaterial.color = blackoutColor;
if (timer > blackoutRate * 2 + duration) {
thisScript.enabled = false;
}
}
}
void OnApplicationQuit() {
spriteDefaultMaterial.color = Color.white;
}
}
Your answer
Follow this Question
Related Questions
Material doesn't have a color property '_Color' 4 Answers
Changing two different objects renderer colour 1 Answer
Why doesn't changing the particle's mateiral color during runtime work? 0 Answers
After upgrading 2017.1, the shader for ParticleSystem does not work correctly. 1 Answer
GameObject color not changing 0 Answers