public void Initialize(VolumetricLightBeam master)
        {
            var hideFlags = Consts.ProceduralObjectsHideFlags;

            m_Master = master;
            this.Lod = m_Master.lod;
            bool noise = (m_Master.noiseEnabled && m_Master.noiseIntensity > 0f && Noise3D.isSupported);
            bool depth = (m_Master.depthBlendDistance > 0f);

            transform.SetParent(master.transform, false);
            meshRenderer = gameObject.GetOrAddComponent <MeshRenderer>();

            ChangeMat(noise, depth, false);
            meshRenderer.hideFlags         = hideFlags;
            meshRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
            meshRenderer.receiveShadows    = false;
            meshRenderer.lightProbeUsage   = UnityEngine.Rendering.LightProbeUsage.Off;
            meshFilter            = gameObject.GetOrAddComponent <MeshFilter>();
            meshRenderer.material = material;

            material.hideFlags = hideFlags;

            gameObject.hideFlags = hideFlags;

            gameObject.layer = Config.Instance.geometryLayerID;

            coneMesh        = MeshGenerator.GetSharedConeZ_Mesh(m_Master.geomSides);
            meshFilter.mesh = coneMesh;
            UpdateMaterialAndBounds();
        }
 public void ChangeMat(bool noise, bool depthBlend, bool ClippingPlane)
 {
     this.Lod        = m_Master.lod;
     overrideTexture = m_Master.OverrideTexture;
     material        = Config.Instance.GetSharedMaterial(noise, depthBlend, ClippingPlane, front, (int)Lod, overrideTexture);
     //front ?  : Config.Instance.GetBackMaterial(noise, depthBlend, ClippingPlane);
     if (meshRenderer)
     {
         meshRenderer.material = material;
     }
 }