title: Unity 5.5 obsolete particle system code
body: <p>Before 5.5 particle system variables could be accessed via <a href="https://docs.unity3d.com/ScriptReference/ParticleSystem.html" rel="noreferrer">ParticleSystem</a> and were read/write. Now they're accessed via <a href="https://docs.unity3d.com/ScriptReference/ParticleSystem.MainModule.html" rel="noreferrer">ParticleSystem.MainModule</a> and thus a lot of code has become obsolete. The <a href="https://docs.unity3d.com/Manual/APIUpdater.html" rel="noreferrer">API Updater</a> has not been able to fix most of the issues. I've read through the new documentation but I can't figure out how the new variable types are supposed to be used. For example in JetParticleEffect.cs this line causes a warning:</p>
  
  <pre><code>// set the original properties from the particle system
  m_OriginalLifetime = m_System.startLifetime;
  </code></pre>
  
  <p>The warning states: 'ParticleSystem.startLifetime' is obsolete: 'startLifetime property is deprecated. Use main.startLifetime or main.startLifetimeMultiplier instead.'</p>
  
  <p>I've tried the following:</p>
  
  <pre><code>m_OriginalLifetime = m_System.main.startLifetime;
  // error: Cannot implicitly convert type 'UnityEngine.ParticleSystem.MinMaxCurve' to 'float'
  </code></pre>
  
  <p>I believe the answer has something to do with the minMaxCurve <a href="https://docs.unity3d.com/ScriptReference/ParticleSystem.MinMaxCurve-constant.html" rel="noreferrer">constant</a> variables as this compiles:</p>
  
  <pre><code>m_OriginalLifetime = m_System.main.startLifetime.constant;
  </code></pre>
  
  <p>But there is almost no explaination in the docs. Can anyone shed some light on this?</p>
  
  <p>Also, where do the new multipliers fit in? I assume where previously you could do this:</p>
  
  <pre><code>particle.startSize *= myMultiplier
  </code></pre>
  
  <p>... you should now do this?</p>
  
  <pre><code>particle.main.startSizeMultiplier = myMultiplier
  </code></pre>