Beispiel #1
0
    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");
        }
    }