CodeBlanks Logo Icon CodeBlanks

Özet - 3D model

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

Player.cs
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

Player.cs
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

Soru
Mesh geometri = filter.____;
Cevap
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ı

Orta seviye bölümündeki tüm dersler