Unity如何使用纯代码绘制一个白色的正方形?

        GameObject A = new GameObject();
        A.AddComponent<MeshRenderer>();
        A.AddComponent<MeshFilter>();
        A.GetComponent<MeshFilter>().mesh.vertices = new Vector3[] { new Vector3(0, 0, 0), new Vector3(0, 1, 0), new Vector3(1, 1, 0), new Vector3(1, 0, 0) };
        A.GetComponent<MeshFilter>().mesh.triangles = new int[] { 0, 1, 2, 0, 2, 3 };

上面的代码会创建一个紫色的正方形。紫色是默认颜色。
我试图修改颜色:

        GameObject A = new GameObject();
        A.AddComponent<MeshRenderer>();
        A.GetComponent<MeshRenderer>().material.color = Color.white;
        A.AddComponent<MeshFilter>();
        A.GetComponent<MeshFilter>().mesh.vertices = new Vector3[] { new Vector3(0, 0, 0), new Vector3(0, 1, 0), new Vector3(1, 1, 0), new Vector3(1, 0, 0) };
        A.GetComponent<MeshFilter>().mesh.triangles = new int[] { 0, 1, 2, 0, 2, 3 };

但运行后,正方形的颜色变成了灰色,而不是白色。
在unity界面中,手动将MeshRenderer的shader设置为Sprite-Default之后,颜色变成了白色。
我不想手动。我试图在代码中设置:

        GameObject A = new GameObject();
        A.AddComponent<MeshRenderer>();
        A.GetComponent<MeshRenderer>().material.shader = Shader.Find("Sprite-Default");
        A.GetComponent<MeshRenderer>().material.color = Color.white;
        A.AddComponent<MeshFilter>();
        A.GetComponent<MeshFilter>().mesh.vertices = new Vector3[] { new Vector3(0, 0, 0), new Vector3(0, 1, 0), new Vector3(1, 1, 0), new Vector3(1, 0, 0) };
        A.GetComponent<MeshFilter>().mesh.triangles = new int[] { 0, 1, 2, 0, 2, 3 };

但运行后无效。MeshRenderer的shader并没有改变。
我该怎么做?
(注:我在制作一个库,因此我希望能够使用纯代码创建白色正方形、而不使用Sprite。)

问题已解决。【Sprite-Default】改成【Sprites/Default】就可以了。

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。