public override void OnInspectorGUI() { if (GUILayout.Button("拆分")) { MeshTool meshTool = target as MeshTool; m_Mesh = meshTool.GetComponent <MeshFilter>().sharedMesh; Mesh rMesh = CutMesh1(m_Mesh, (color) => { if (color.r >= color.b && color.r >= color.g && color.r >= color.a) { return(true); } else { return(false); } }); Mesh gMesh = CutMesh1(m_Mesh, (color) => { if (color.g >= color.r && color.g >= color.b && color.g >= color.a) { return(true); } else { return(false); } }); Mesh bMesh = CutMesh1(m_Mesh, (color) => { if (color.b >= color.r && color.b >= color.g && color.b >= color.a) { return(true); } else { return(false); } }); Mesh aMesh = CutMesh1(m_Mesh, (color) => { if (color.a >= color.r && color.a >= color.g && color.a >= color.b) { return(true); } else { return(false); } }); //AssetDatabase.CreateAsset(redMesh, "Assets/newmesh1.mesh"); } if (GUILayout.Button("设置顶点色")) { MeshTool meshTool = target as MeshTool; m_Mesh = meshTool.GetComponent <MeshFilter>().sharedMesh; List <Vector3> vector3s = new List <Vector3>(); Mesh newMesh = Object.Instantiate(m_Mesh); newMesh.GetVertices(vector3s); List <Color> colors = new List <Color>(); vector3s.ForEach((item) => { Color color = Color.white; if (item.y > 0) { color = Color.red; } else { color = Color.blue; } colors.Add(color); } ); newMesh.SetColors(colors); AssetDatabase.CreateAsset(newMesh, "Assets/newmesh.mesh"); } }