Meydan okuma 1: Materyal ataması
- Oyun Geliştirme kursu
- Orta seviye
- Ders 79/83
- 5 dk
Bir MeshRenderer'a koddan material atayan scripti yazarsın.
MeshRenderer ve Dinamik Materyal Ataması
Kod üzerinden bir 3D modelin görünümünü değiştirmek için MeshRenderer bileşeninin material özelliğine yeni bir Material atanır. Bu işlem çalışma zamanında karakterin hasar alması, güçlenmesi veya çevre koşullarına göre renk değiştirmesi gibi durumlarda sıkça kullanılır.
MeshRenderer cizici = GetComponent<MeshRenderer>();
cizici.material = yeniMateryal;Uygulama Materyal Değiştirme Görevi
renderer.material = new Material("Kırmızı"); ataması yap ve Debug.Log("Materyal: " + renderer.material.name); ile yazdır.
Başlangıç kodu
using System;
public class Material
{
public string name;
public Material(string name) { this.name = name; }
}
public class MeshRenderer
{
public Material material;
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
MeshRenderer renderer = new MeshRenderer();
// Materyal olustur, ata ve adini konsola yazdir
}
}Örnek çözüm
using System;
public class Material
{
public string name;
public Material(string name) { this.name = name; }
}
public class MeshRenderer
{
public Material material;
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
MeshRenderer renderer = new MeshRenderer();
renderer.material = new Material("Kırmızı");
Debug.Log("Materyal: " + renderer.material.name);
}
}Beklenen çıktı
Materyal: Kırmızı
Uygulama Aktif Materyal Kontrolü
if (renderer.material != null) şartı ile materyalin varlığını kontrol et ve Debug.Log("Materyal aktif: " + renderer.material.name); yazdır.
Başlangıç kodu
using System;
public class Material
{
public string name;
public Material(string name) { this.name = name; }
}
public class MeshRenderer
{
public Material material = new Material("Mavi");
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
MeshRenderer renderer = new MeshRenderer();
// Null kontrolu yap ve aktif materyal adini yazdir
}
}Örnek çözüm
using System;
public class Material
{
public string name;
public Material(string name) { this.name = name; }
}
public class MeshRenderer
{
public Material material = new Material("Mavi");
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
MeshRenderer renderer = new MeshRenderer();
if (renderer.material != null)
{
Debug.Log("Materyal aktif: " + renderer.material.name);
}
}
}Beklenen çıktı
Materyal aktif: Mavi
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Kod içerisinde bir GameObject üzerindeki MeshRenderer bileşenine çalışma anında yeni bir materyal atamak için hangi özellik kullanılır?
- renderer.color
- renderer.sharedMesh
- renderer.material Doğru cevap
- renderer.transform
Açıklama: renderer.material özelliği kullanılarak nesnenin aktif materyali çalışma anında dinamik olarak değiştirilir.
2 Materyali Ata
cizici.____ = altinMateryal;
cizici.material = altinMateryal;
Açıklama: MeshRenderer bileşenine materyal atamak için material özelliği kullanılır.
3 Materyal ve Çizici Terimleri
| Kavram | Anlamı |
|---|---|
renderer.material |
Çalışma anında atanan aktif materyal |
MeshRenderer |
Geometriyi materyalle çizen bileşen |
Material |
Yüzey rengi ve dokusunu tutan kaynak |
material.color |
Materyalin ana renk tonu değeri |