Exemple #1
0
    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();
    }