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

ParticleSystem ps = GetComponent();

ParticleSystem.MainModule ma = ps.main;

ma.startColor = new color…

ref: Unity - Scripting API: ParticleSystem.MainModule.startColor