void DrawVisualizationControls()
        {
            GUILayout.BeginHorizontal();

            bool frontfacing = GUILayout.Toggle((particleCulling & ParticleCulling.Front) != 0, new GUIContent(Resources.Load <Texture2D>("FrontfacesButton"), "Cull frontfacing particles"), GUI.skin.FindStyle("Button"), GUILayout.MaxHeight(24), GUILayout.Width(42));

            particleCulling = frontfacing ? particleCulling | ParticleCulling.Front
                                                                  : particleCulling & ~ParticleCulling.Front;

            bool backfacing = GUILayout.Toggle((particleCulling & ParticleCulling.Back) != 0, new GUIContent(Resources.Load <Texture2D>("BackfacesButton"), "Cull backfacing particles"), GUI.skin.FindStyle("Button"), GUILayout.MaxHeight(24), GUILayout.Width(42));

            particleCulling = backfacing ? particleCulling | ParticleCulling.Back
                                                                  : particleCulling & ~ParticleCulling.Back;

            GUILayout.EndHorizontal();
        }
 void OnDestroy()
 {
     if (disconnectAndStopParticlesOnDestroy)
     {
         for (int i = 0; i < transform.childCount; ++i)
         {
             GameObject child = transform.GetChild(i).gameObject;
             child.transform.parent = transform.parent;
             ParticleSystem ps = child.GetComponent <ParticleSystem>();
             if (ps != null)
             {
                 ps.enableEmission = false;
             }
             ParticleCulling pc = child.GetComponent <ParticleCulling>();
             if (pc != null)
             {
                 pc.enabled = true;
             }
         }
     }
 }