UnityGameProjectsCode / Rise2Point0Game / Player / PlayerTrailParticles.cs
PlayerTrailParticles.cs
Raw
using UnityEngine;

public class PlayerTrailParticles : MonoBehaviour
{
    public ParticleSystem trailParticles;
    public ParticleSystem burstParticles;
    public ParticleSystem extraParticles;
    private float currentSpeed;
    public Rigidbody2D playerRB;

    private void Start()
    {
        trailParticles.Play();
        extraParticles.Play();
    }

    private void Update()
    {
        currentSpeed = playerRB.velocity.magnitude;

        var partEmm = trailParticles.emission;
        var extraPartEmm = extraParticles.emission;
        partEmm.rateOverTime = currentSpeed;
        extraPartEmm.rateOverTime = currentSpeed;
    }

    public void EmitBurst()
    {
        burstParticles.Play();
    }

    public void RestartParticles()
    {
        trailParticles.Play();
        extraParticles.Play();
    }

    public void SetParticleColor(Color newColor)
    {
        var trailMain = trailParticles.main;
        var burstMain = burstParticles.main;
        var extraMain = extraParticles.main;

        trailMain.startColor = newColor;
        burstMain.startColor = newColor;
        extraMain.startColor = newColor;
    }
}