private void Init(float size, float radius, float detail) { if (material == null) { material = SgtHelper.CreateTempMaterial(SgtHelper.ShaderNamePrefix + "Lightning"); } if (meshFilter == null) { meshFilter = gameObject.AddComponent <MeshFilter>(); } if (meshRenderer == null) { meshRenderer = gameObject.AddComponent <MeshRenderer>(); } SgtProceduralMesh.Clear(); { mesh = SgtObjectPool <Mesh> .Add(mesh); AddVertices(size, radius, detail); AddIndices(); mesh = SgtProceduralMesh.SplitSingle(HideFlags.DontSave); mesh.RecalculateBounds(); meshFilter.sharedMesh = mesh; meshRenderer.sharedMaterial = material; } SgtProceduralMesh.Discard(); }