Я пытаюсь изменить и изменить размер текстур, наложенных на грани кулака в кубике в Unity. Без каких-либо проблем, мне удалось поместить другое изображение на каждом лице с этим кодом:Почему текстура УФ-карты изменена для всех кубов?
void Start() {
Mesh mesh = GetComponent<MeshFilter>().mesh;
Vector2[] UVs = new Vector2[mesh.vertices.Length];
// Front
UVs[0] = new Vector2(0.0f, 0.0f);
UVs[1] = new Vector2(0.333f, 0.0f);
UVs[2] = new Vector2(0.0f, 0.333f);
UVs[3] = new Vector2(0.333f, 0.333f);
// Top
UVs[4] = new Vector2(0.334f, 0.333f);
UVs[5] = new Vector2(0.666f, 0.333f);
UVs[8] = new Vector2(0.334f, 0.0f);
UVs[9] = new Vector2(0.666f, 0.0f);
// Back
UVs[6] = new Vector2(1.0f, 0.0f);
UVs[7] = new Vector2(0.667f, 0.0f);
UVs[10] = new Vector2(1.0f, 0.333f);
UVs[11] = new Vector2(0.667f, 0.333f);
// Bottom
UVs[12] = new Vector2(0.0f, 0.334f);
UVs[13] = new Vector2(0.0f, 0.666f);
UVs[14] = new Vector2(0.333f, 0.666f);
UVs[15] = new Vector2(0.333f, 0.334f);
// Left
UVs[16] = new Vector2(0.334f, 0.334f);
UVs[17] = new Vector2(0.334f, 0.666f);
UVs[18] = new Vector2(0.666f, 0.666f);
UVs[19] = new Vector2(0.666f, 0.334f);
// Right
UVs[20] = new Vector2(0.667f, 0.334f);
UVs[21] = new Vector2(0.667f, 0.666f);
UVs[22] = new Vector2(1.0f, 0.666f);
UVs[23] = new Vector2(1.0f, 0.334f);
mesh.uv = UVs;
GetComponent<MeshFilter>().mesh = mesh
}
Это работает, но он использует только текстуры (текстуры атласа ??), прикрепленные к кубу/затенению. Интересно, можно ли использовать два разных набора текстур, например, у меня есть 4 лица с частями текстуры 1 и 2 граней с частями текстуры 2. Или, возможно, можно создать текстурный атлас с помощью кода, используя 6 разных текстуры? Может ли использоваться метод PackTexture()?
Hi. Спасибо, но если у меня будет два подмашины, прикрепленных к кубу, у одного из шести текстур куба будет текстура, а secon также будет иметь разную текстуру шести сторон, смогу ли я использовать четыре грани из первой текстуры и две грани второй текстуры? –
Я просто добавлю пример, чтобы сделать это ... – Klamore74
Привет, я решил проблему с использованием Texture2D.PackTextures, а затем, установив UVs для каждой упакованной текстуры. Спасибо, в любом случае :) –