AX0101_4413 2022-04-07 14:17 采纳率: 95.7%
浏览 130
已结题

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。)

  • 写回答

2条回答 默认 最新

  • AX0101_4413 2022-04-07 18:38
    关注

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

    评论

报告相同问题?

问题事件

  • 系统已结题 4月15日
  • 创建了问题 4月7日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。