CodeBlanks Logo Icon CodeBlanks

Properties bloğu

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

Player.cs
using UnityEngine;

public class PropertyLogger : MonoBehaviour
{
    // Start icinde ozellik degiskenini tanimla ve yazdir
}

Örnek çözüm

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

Soru
Properties { _Color ("Main Color", ____) = (1,1,1,1) }
Cevap
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

İleri seviye bölümündeki tüm dersler