Properties bloğu
- Oyun Geliştirme kursu
- İleri seviye
- Ders 4/71
- 4 dk
Properties bloğu ile dışarıdan değer almayı öğrenirsin.
Properties Bloğu ile Değişken Tanımlama
ShaderLab kodunun en üstünde yer alan Properties { } bloğu, shader parametrelerinin Unity Inspector penceresinde kullanıcıya açılmasını (exposed) sağlar. Renk, sayı, kaydırıcı (Range) ve doku gibi alanlar burada tanımlanır.
Properties
{
_Color ("Ana Renk", Color) = (1,1,1,1)
_Glossiness ("Parlaklik", Range(0,1)) = 0.5
_MainTex ("Albedo (RGB)", 2D) = "white" {}
}Inspector'da değiştirilen her değer materyal varlığına kaydedilir ve shader hesaplamalarına doğrudan aktarılır.
C# ve Shader Değişken Eşleşmesi
Properties bloğunda tanımlanan bir değişken (örneğin _Color), C# tarafından doğrudan güncellenebilir. Bunun için Material.SetColor veya Material.SetFloat metotları kullanılır.
// C# uzerinden shader ozelligi guncelleme
Renderer rend = GetComponent<Renderer>();
rend.material.SetColor("_Color", Color.red);Shader kodunun içindeki CGPROGRAM bloğunda ise aynı isimle bir uniform değişkeni (fixed4 _Color;) açılır.
Uygulama Materyal özelliği güncelleme
Bir Start metodu tanımla. İçinde string ozellikAdi = "_Color"; tanımla ve konsola "Guncellenen ozellik: " + ozellikAdi yazdır.
Başlangıç kodu
using UnityEngine;
public class PropertyLogger : MonoBehaviour
{
// Start icinde ozellik degiskenini tanimla ve yazdir
}Örnek çözüm
using UnityEngine;
public class PropertyLogger : MonoBehaviour
{
void Start()
{
string ozellikAdi = "_Color";
Debug.Log("Guncellenen ozellik: " + ozellikAdi);
}
}Beklenen çıktı
Guncellenen ozellik: _Color
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 ShaderLab içinde tanımlanan bir özelliğin Inspector'da bir kaydırıcı (slider) olarak görünmesi için hangi tür kullanılır?
- Boolean
- Color
- Texture2D
- Range(min, max) Doğru cevap
Açıklama: ShaderLab Properties bloğunda 'Range(min, max)' türü Inspector arayüzünde sayısal bir kaydırıcı (slider) oluşturur.
2 Properties renk tanımı
Properties { _Color ("Main Color", ____) = (1,1,1,1) }
Properties { _Color ("Main Color", Color) = (1,1,1,1) }
Açıklama: ShaderLab Properties bloğunda renk alanı tanımlamak için Color türü kullanılır.
3 Properties terimleri
| Kavram | Anlamı |
|---|---|
Properties { } |
Dışarıya açılan parametrelerin bloğu |
Range(0, 1) |
Kaydırıcı arayüzü sunan sayısal değer |
2D |
Doku (Texture) giriş türü |
SetColor |
C#'tan renk parametresini günceller |