namespace UnityEngine.AzureSky { [RequireComponent(typeof(ParticleSystem))] [AddComponentMenu("Azure[Sky] Dynamic Skybox/Azure Particle FX")] public sealed class AzureParticleFX : MonoBehaviour { /// The particle system attached to this game object. private ParticleSystem m_particleSystem; /// The reference to the emission module of the attached particle system. private ParticleSystem.EmissionModule m_particleEmission; /// The emission intensity of the particle system attached to this game object. public float intensity { get => m_intensity; set { m_intensity = value; if (m_particleSystem) { m_particleEmission.rateOverTimeMultiplier = value; if (value > 0) { if (!m_particleSystem.isPlaying) m_particleSystem.Play(); } else if (m_particleSystem.isPlaying) m_particleSystem.Stop(); } } } [SerializeField] private float m_intensity; private void Awake() { m_particleSystem = GetComponent(); if (m_particleSystem) m_particleEmission = m_particleSystem.emission; } } }