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】就可以了。
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。