private void PostGenerate(MeshFilter mf)
    {
        if (m_ForEditor)
        {
            m_MeshMgr.m_ColliderDirty = true;
        }
        else
        {
            if (m_CreateBoxCollider)
            {
                BoxCollider bc = mf.gameObject.GetComponent <BoxCollider>();
                if (bc != null)
                {
                    BoxCollider.DestroyImmediate(bc);
                }

                RecalcCreationMeshBounds(mf.mesh);
                bc = mf.gameObject.AddComponent <BoxCollider>();

                bc.size    *= WhiteCat.PEVCConfig.instance.creationColliderScale;
                bc.material = WhiteCat.PEVCConfig.instance.physicMaterial;
            }

            // particle
            VCParticlePlayer pp = mf.GetComponent <VCParticlePlayer>();
            pp.LocalPosition = VCUtils.RandPosInBoundingBox(mf.mesh.bounds);
        }

        var cc = mf.GetComponentInParent <WhiteCat.CreationController>();

        if (cc)
        {
            cc.OnNewMeshBuild(mf);
        }
    }