using System; using UnityEngine; namespace ARTNGAME.Skymaster { [RequireComponent(typeof(ParticleSystem))] public class JetParticleEffectSM : MonoBehaviour { public Color minColour; private AeroplaneControllerSM m_Jet; private ParticleSystem m_System; private float m_OriginalStartSize; private float m_OriginalLifetime; private Color m_OriginalStartColor; private void Start() { m_Jet = FindAeroplaneParent(); m_System = GetComponent(); ParticleSystem.MainModule main = m_System.main; m_OriginalLifetime = main.startLifetime.constant; m_OriginalStartSize = main.startSize.constant; m_OriginalStartColor = main.startColor.color; } private void Update() { ParticleSystem.MainModule main = m_System.main; ParticleSystem.MinMaxCurve startLifetime = main.startLifetime; startLifetime.constant = Mathf.Lerp(0f, m_OriginalLifetime, m_Jet.Throttle); ParticleSystem.MinMaxCurve startSize = main.startSize; startSize.constant = Mathf.Lerp(m_OriginalStartSize * 0.3f, m_OriginalStartSize, m_Jet.Throttle); ParticleSystem.MinMaxGradient startColor = main.startColor; startColor.color = Color.Lerp(minColour, m_OriginalStartColor, m_Jet.Throttle); } private AeroplaneControllerSM FindAeroplaneParent() { Transform parent = base.transform; while (parent != null) { AeroplaneControllerSM component = parent.GetComponent(); if (component == null) { parent = parent.parent; continue; } return component; } throw new Exception(" AeroplaneContoller not found in object hierarchy"); } } }