- Home /
How do I change Particle System color via script in Unity 5.6.1f1?
At the moment I'm using an infrequent particle burst to both identify the viewcone and status of a creature. I'd like to change the colour (or starting colour) of the particle system - however, recent changes to the particle system code has made this process somewhat baffling to an intermediate programmer such as myself.
After a certain amount of research and trying to parse pages such as these, I've ended up with sample code like the following...
var ma = refs.visViewCone.main.startColor.color; // Awkwardly, apparently I need to create a reference to the ParticleSystem.Main within local scope. Guh.
switch (mind.goal)
{
case Goal.standby:
ma = eyeCol.standbyWhite;
break;
{
I'll be honest, this isn't helping - instead, it throws up the following error:
NullReferenceException: Do not create your own module instances, get them from a ParticleSystem instance
Really frustrating. Neither realtime lights (too expensive) nor projectors (too unpredictable, shines through walls) seemed suited to the task, but now Particle Systems seem to have mutated into a mash of weird structs and unwritable variables and module instances...
Can anybody help? Would really appreciate it.
--Rev
Answer by ifurkend · Jun 08, 2017 at 09:40 PM
ParticleSystem ps = GetComponent();
ParticleSystem.MainModule ma = ps.main;
ma.startColor = new color...
ref: https://docs.unity3d.com/ScriptReference/ParticleSystem.MainModule-startColor.html
Perfect, thanks. Annoyed I didn't find those docs. --Rev
You can simply google with the keyword: "unity api (specific subject of your issue like 'particlesystem color')". Sadly not all documents of function provide sample codes.
In my defense, I did a fair bit of rummaging around trying to find an answer to my problem, but can't argue with results - I'll lead with those search terms in future. Thank you! --Rev