Пример #1
0
 private void ModifyMesh(Vector3 displacement, Vector3 center)
 {
     using (List <MeshFilter> .Enumerator enumerator = this.m_Filters.GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             MeshFilter current  = enumerator.Current;
             Mesh       mesh1    = current.get_mesh();
             Vector3[]  vertices = mesh1.get_vertices();
             for (int index = 0; index < vertices.Length; ++index)
             {
                 Vector3 pos = ((Component)current).get_transform().TransformPoint(vertices[index]);
                 vertices[index] = Vector3.op_Addition(vertices[index], Vector3.op_Multiply(displacement, MeshTool.Gaussian(pos, center, this.m_Radius)));
             }
             mesh1.set_vertices(vertices);
             mesh1.RecalculateBounds();
             MeshCollider component = (MeshCollider)((Component)current).GetComponent <MeshCollider>();
             if (Object.op_Inequality((Object)component, (Object)null))
             {
                 Mesh mesh2 = new Mesh();
                 mesh2.set_vertices(mesh1.get_vertices());
                 mesh2.set_triangles(mesh1.get_triangles());
                 component.set_sharedMesh(mesh2);
             }
         }
     }
 }