Unity3d 如何在Unity 5中绘制二维三角形?

Unity3d 如何在Unity 5中绘制二维三角形?,unity3d,2d,draw,Unity3d,2d,Draw,我正在尝试使用或脚本绘制二维三角形,但没有成功,我没有看到任何三角形。我只有相机,画布和面板在里面,我也试着把它应用到空画布的子对象上,我必须如何应用这些脚本?我试过不同的变体。这是画三角形的好方法还是有更好的方法?另外,我在某个地方读到GL类在iOS和/或Mac上不起作用,是真的吗 private GameObject m_goTriangle; m_goTriangle.AddComponent<MeshFilter>(); m_goTriangle.AddCom

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

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 };
希望这有帮助=


希望这有帮助=

只是提醒一下,在Unity 5.6或更高/更低版本中,uv不允许有不同大小的顶点'。 所以如果您在使用Junamai的代码时遇到问题,即Unity会出现如下错误: Mesh.uv已超出范围。提供的数组需要与Mesh.vertices数组的大小相同

只需更改修改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 };

错误将得到解决。

只是提醒一下,在Unity 5.6或更高/更低版本中,uv不允许有不同大小的顶点'。 所以如果您在使用Junamai的代码时遇到问题,即Unity会出现如下错误: Mesh.uv已超出范围。提供的数组需要与Mesh.vertices数组的大小相同

只需更改修改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 };

与其他物体相比,三角形的z是多少?如果z小于,三角形将从视图中隐藏。我在空场景中的空对象上尝试了0。我想我只是用错了。试着把Z设为1,看看是否有帮助。我试过了。我也试着在现有的物体上改变Z,这一点都不影响。和其他物体相比,三角形的Z是多少?如果z小于,三角形将从视图中隐藏。我在空场景中的空对象上尝试了0。我想我只是用错了。试着把Z设为1,看看是否有帮助。我试过了。此外,我还尝试在现有对象上更改Z,这一点都不影响。我还必须添加材质:m_goTriangle.GetComponent.material=new MaterialShader.FindSprites/Default{color=color.red};我还必须添加材质:m_goTriangle.GetComponent.material=newmaterialshader.FindSprites/Default{color=color.red};