【问题标题】:How can I draw 2D triangles in Unity 5?如何在 Unity 5 中绘制二维三角形?
【发布时间】:2015-03-20 19:33:18
【问题描述】:

我正在尝试使用thisthis(脚本)绘制二维三角形,但没有成功(我没有看到任何三角形)。我只有相机、画布和面板,我也尝试将它应用到空画布的子对象上,我必须如何应用这些脚本?我尝试了不同的变化。这是绘制三角形的好方法还是有更好的方法?另外,我在某处读到 GL 类在 iOS 和/或 Mac 上不起作用,是真的吗?

【问题讨论】:

  • 与其他对象相比,三角形的 z 是多少?如果 z 较小,则三角形将被隐藏。
  • 我在空场景的空对象上尝试了“0”。我想我只是在某种程度上错误地使用它。
  • 尝试将 Z 设为 1,看看是否有帮助。
  • 我试过了。此外,我尝试更改现有对象的 Z,它根本不影响。

标签: unity3d 2d draw


【解决方案1】:
private GameObject m_goTriangle;
m_goTriangle.AddComponent<MeshFilter>();
        m_goTriangle.AddComponent<MeshRenderer>();
        m_meshTriangle = m_goTriangle.GetComponent<MeshFilter>().mesh;
        m_meshTriangle.Clear();
        m_meshTriangle.uv = new Vector2[] { new Vector2(0, 0), new Vector2(0, 0.25f), new Vector2(0.25f, 0.25f) };
        m_meshTriangle.vertices = new Vector3[] { new Vector3(0, 0, 0), new Vector3(0, 0.25f, 0), new Vector3(0.25f, 0.25f, 0) };
        m_meshTriangle.triangles = new int[] { 0, 1, 2 };

希望这会有所帮助! =)

【讨论】:

    【解决方案2】:

    提醒一下,在 Unity 5.6(或更高/更低版本?)中,不允许 uv 具有不同大小的顶点。 所以...如果您在使用 Junamai 的代码时遇到问题,即 Unity 会收到如下错误: Mesh.uv is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array.

    只需改变修改uv和顶点的顺序即可:

        private GameObject m_goTriangle;
        m_goTriangle.AddComponent<MeshFilter>();
        m_goTriangle.AddComponent<MeshRenderer>();
        m_meshTriangle = m_goTriangle.GetComponent<MeshFilter>().mesh;
        m_meshTriangle.Clear();
        m_meshTriangle.vertices = new Vector3[] { new Vector3(0, 0, 0), new Vector3(0, 0.25f, 0), new Vector3(0.25f, 0.25f, 0) };
        m_meshTriangle.uv = new Vector2[] { new Vector2(0, 0), new Vector2(0, 0.25f), new Vector2(0.25f, 0.25f) };
        m_meshTriangle.triangles = new int[] { 0, 1, 2 };
    

    并且错误将得到解决。

    【讨论】:

    • 我还必须添加材料:m_goTriangle.GetComponent&lt;MeshRenderer&gt;().material = new Material(Shader.Find("Sprites/Default")) {color = Color.red};
    猜你喜欢
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    相关资源
    最近更新 更多