Всем доброго здравия!
Создаю меш из спрайта стандартными средствами:
Mesh mesh = new Mesh();
mesh.vertices = Array.ConvertAll(sprite.vertices, i => (Vector3)i);
mesh.uv = asset.uv;
mesh.triangles = Array.ConvertAll(sprite.triangles, i => (int)i);
mesh.RecalculateBounds();
mesh.RecalculateNormals();
mesh.RecalculateTangents();
GameObject gameObject = new GameObject("ASSET");
MeshRenderer meshRenderer = gameObject.AddComponent<MeshRenderer>();
MeshFilter meshFilter = gameObject.AddComponent<MeshFilter>();
Material newMaterial = new Material(material);
newMaterial.mainTexture = texture;
meshRenderer.material = newMaterial;
Это прекрасно работает, меш создаётся. Создаётся нужно формы, текстура накладывается как надо, тут вопросов нет.
Но суть в том, что мне нужно его выдавить, чтобы он сохранил форму, но стал толстым.
На ЮВшки при этом плевать.
Всё, что смог нагуглить, что это делается через про билдер.
Переписал создание меша через него:
ProBuilderMesh quad = ProBuilderMesh.Create(Array.ConvertAll(sprite.vertices, i => (Vector3)i),
new Face[] { new Face(Array.ConvertAll(sprite.triangles, i => (int)i)) });
И вот тут встал в ступор. Документацию я либо читать не умею, либо там мало чего полезного. Но я смог найти только то, что есть метод extrude и... Дальше я продвинуться не смог.
Буду признателен за любую наводку