Özet - 3D model
- Oyun Geliştirme kursu
- Orta seviye
- Ders 6/83
- 4 dk
3D model kullanımını bir özet görevle pekiştirirsin.
3D Model Mimarisi Özeti
3D modeller, uzaydaki noktaları tutan vertices ve yüzeyleri bağlayan triangles yapısından oluşur. Sahnedeki bir model, geometrisini MeshFilter ile saklar, görünümünü ise MeshRenderer ve ona bağlı Material ile ekrana yansıtır. Basit formlar için hazır primitive'ler kullanılırken, karmaşık modeller .fbx ile dışarıdan aktarılır.
MeshFilter mf = GetComponent<MeshFilter>();
MeshRenderer mr = GetComponent<MeshRenderer>();
Debug.Log(mf.sharedMesh.vertexCount);Uygulama 3D Model İnceleme Görevi
filter.sharedMesh.vertexCount değerini kose değişkenine, renderer.materialCount değerini malzeme değişkenine ata. Sonuçları sırasıyla Debug.Log("Kose: " + kose); ve Debug.Log("Malzeme: " + malzeme); ile yazdır.
Başlangıç kodu
using System;
public class Mesh
{
public int vertexCount = 8;
}
public class MeshFilter
{
public Mesh sharedMesh = new Mesh();
}
public class MeshRenderer
{
public int materialCount = 1;
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
MeshFilter filter = new MeshFilter();
MeshRenderer renderer = new MeshRenderer();
// kose ve malzeme sayilarini alip ekrana yazdir
}
}Örnek çözüm
using System;
public class Mesh
{
public int vertexCount = 8;
}
public class MeshFilter
{
public Mesh sharedMesh = new Mesh();
}
public class MeshRenderer
{
public int materialCount = 1;
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
MeshFilter filter = new MeshFilter();
MeshRenderer renderer = new MeshRenderer();
int kose = filter.sharedMesh.vertexCount;
int malzeme = renderer.materialCount;
Debug.Log("Kose: " + kose);
Debug.Log("Malzeme: " + malzeme);
}
}Beklenen çıktı
Kose: 8 Malzeme: 1
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 3D bir nesnenin sahnede hem geometrisini hafızada tutması hem de renk ve malzemeyle ekranda görünmesi için hangi iki bileşenin birlikte bulunması gerekir?
- AudioSource ve Rigidbody
- Transform ve BoxCollider
- Camera ve Light
- MeshFilter ve MeshRenderer Doğru cevap
Açıklama: MeshFilter geometri verisini tutar, MeshRenderer ise bu geometriyi malzemelerle ekrana çizer.
2 Mesh Geometrisini Oku
Mesh geometri = filter.____;
Mesh geometri = filter.sharedMesh;
Açıklama: MeshFilter üzerindeki asıl mesh referansına sharedMesh özelliğiyle ulaşılır.
3 Tüm 3D Model Kavramları
| Kavram | Anlamı |
|---|---|
Mesh |
Köşe ve üçgen verisi tutan geometri |
MeshFilter |
Mesh'i GameObject'e bağlayan bileşen |
MeshRenderer |
Geometriyi malzemelerle çizen bileşen |
.fbx |
Dışarıdan aktarılan 3D model dosyası |