protected virtual void Start()
 {
     if (Flare == null)
     {
         Flare = GetComponent <SgtFlare>();
     }
 }
        public static SgtFlareModel Create(SgtFlare flare)
        {
            var model = SgtComponentPool <SgtFlareModel> .Pop(flare.transform, "Flare Model", flare.gameObject.layer);

            model.Flare = flare;

            return(model);
        }
        public void RemoveMesh()
        {
            if (cachedFlareSet == false)
            {
                cachedFlare    = GetComponent <SgtFlare>();
                cachedFlareSet = true;
            }

            if (cachedFlare.Mesh == generatedMesh)
            {
                cachedFlare.Mesh = null;

                cachedFlare.UpdateMesh();
            }
        }
        public void ApplyMesh()
        {
            if (cachedFlareSet == false)
            {
                cachedFlare    = GetComponent <SgtFlare>();
                cachedFlareSet = true;
            }

            if (cachedFlare.Mesh != generatedMesh)
            {
                cachedFlare.Mesh = generatedMesh;

                cachedFlare.UpdateMesh();
            }
        }
        public void RemoveMaterial()
        {
            if (cachedFlareSet == false)
            {
                cachedFlare    = GetComponent <SgtFlare>();
                cachedFlareSet = true;
            }

            if (cachedFlare.Material == generatedMaterial)
            {
                cachedFlare.Material = null;

                cachedFlare.UpdateMaterial();
            }
        }
        public void ApplyMaterial()
        {
            if (cachedFlareSet == false)
            {
                cachedFlare    = GetComponent <SgtFlare>();
                cachedFlareSet = true;
            }

            if (cachedFlare.Material != generatedMaterial)
            {
                cachedFlare.Material = generatedMaterial;

                cachedFlare.UpdateMaterial();
            }
        }