Unity'de bilt-in küpünün yüzlerine yerleştirilen dokuları değiştirmeye ve yeniden boyutlandırmaya çalışıyorum. Herhangi bir sorun olmadan ben bu kodla her yüzünde farklı bir görüntü koymak başardı:Doku küpü haritası neden tüm küpler için değişti?
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
}
Bu çalışır, ancak küp/shader bağlı tek bir doku (texture atlası ??) kullanır. İki farklı doku seti kullanmanın mümkün olup olmadığını merak ediyorum. Örneğin, doku 1 parçaları ile 4 yüze ve doku 2 parçalarıyla 2 yüze sahibim. Veya 6 farklı kod kullanarak doku atlası oluşturmak mümkündür. dokular? Bunun için PackTexture() yöntemi kullanılabilir mi?
Merhaba. Teşekkürler, ama eğer küpe bağlı iki alt şerite sahip olacak olursam, altı küp yüz dokusuna sahip olan ve farklı altı yüz dokusuna sahip olan bir sekansa sahip olacak olursam, ilk dokudan dört yüzü ve ikinci dokudan iki yüzü kullanabilir miyim? –
Sadece bunu yapmak için bir örnek ekliyorum ... – Klamore74
Merhaba, Ben Texture2D.PackTextures kullanarak ve her opf paketlenmiş dokular için UV'leri ayarlayarak benim sorunumu çözdüm. Yine de teşekkürler :) –