Как я могу рисовать 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 };
И ошибка будет решена.