Meydan okuma 1: Shader property
- Oyun Geliştirme kursu
- İleri seviye
- Ders 67/71
- 5 dk
Properties bloğu olan bir shader iskeletini tamamlarsın.
Meydan Okuma 1: Shader Özellikleri
ShaderLab yapısında Properties bloğu, Inspector üzerinden düzenlenecek parametreleri dışarıya açar. Renkler, sayılar, kaydırıcılar ve dokular burada tanımlanır.
Properties {
_Color ("Ana Renk", Color) = (1,1,1,1)
_Glossiness ("Puruzsuzluk", Range(0,1)) = 0.5
_MainTex ("Albedo", 2D) = "white" {}
}C# scriptlerinden bu alanlara material.SetColor ve material.SetTexture metotlarıyla doğrudan erişilebilir.
Uygulama Shader özellik adı testi
Bir Start metodu tanımla. İçinde string propertyName = "_MainColor"; tanımla ve konsola "Shader ozelligi: " + propertyName yazdır.
Başlangıç kodu
using UnityEngine;
public class ShaderPropertyTester : MonoBehaviour
{
// Start icinde propertyName tanimla ve yazdir
}Örnek çözüm
using UnityEngine;
public class ShaderPropertyTester : MonoBehaviour
{
void Start()
{
string propertyName = "_MainColor";
Debug.Log("Shader ozelligi: " + propertyName);
}
}Beklenen çıktı
Shader ozelligi: _MainColor
Uygulama Shader parlaklık değeri testi
Bir Start metodu tanımla. İçinde float parlaklik = 0.8f; tanımla ve konsola "Parlaklik degeri: " + parlaklik yazdır.
Başlangıç kodu
using UnityEngine;
public class ShaderGlossTester : MonoBehaviour
{
// Start icinde parlaklik tanimla ve yazdir
}Örnek çözüm
using UnityEngine;
public class ShaderGlossTester : MonoBehaviour
{
void Start()
{
float parlaklik = 0.8f;
Debug.Log("Parlaklik degeri: " + parlaklik);
}
}Beklenen çıktı
Parlaklik degeri: 0.8
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 ShaderLab Properties bloğu içinde '_MainTex ("Doku", 2D) = "white" {}' tanımlandığında, C# üzerinden bu dokuyu atamak için hangi fonksiyon çağrılır?
- material.SetPhysics
- material.SetAnimation
- material.SetTexture Doğru cevap
- material.SetAudio
Açıklama: 2D doku türündeki shader parametrelerini kodla güncellemek için material.SetTexture fonksiyonu kullanılır.
2 Kaydırıcı özelliği tanımla
Properties { _Glossiness ("Smoothness", ____(0, 1)) = 0.5 }
Properties { _Glossiness ("Smoothness", Range(0, 1)) = 0.5 }
Açıklama: ShaderLab'de kaydırıcı arayüzüne sahip sayısal bir alan açmak için 'Range' anahtar sözcüğü kullanılır.
3 Shader özellik eşleştirmesi
| Kavram | Anlamı |
|---|---|
Properties |
Inspector'daki shader parametreleri |
_Color |
Shader için renk parametresi adı |
Range(0, 1) |
Kaydırıcı arayüzlü ondalıklı sayı |
SetColor |
C#'tan renk parametresini günceller |