Как я могу рисовать 2D треугольники в Unity 5?

Я пытаюсь нарисовать 2D-треугольники, используя то или иное (сценарии), но безуспешно (я не вижу никаких треугольников). У меня есть только камера, холст и панель, а также я пытался применить его к дочернему объекту пустого холста, как я должен применять эти сценарии? Я пробовал разные варианты. И это хороший способ рисовать треугольники или есть что-то лучше? Также я где-то читал, что GL Class не работает на iOS и / или Mac, это правда?

2 ответа

Решение
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 (или выше / ниже версия?), Ультрафиолету НЕ разрешено иметь разный размер вершин ". Так что... если у вас возникли проблемы с использованием кода 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 };

И ошибка будет решена.

Другие вопросы по тегам