CodeBlanks Logo Icon CodeBlanks

Meydan okuma 1: Shader property

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

Player.cs
using UnityEngine;

public class ShaderPropertyTester : MonoBehaviour
{
    // Start icinde propertyName tanimla ve yazdir
}

Örnek çözüm

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

Player.cs
using UnityEngine;

public class ShaderGlossTester : MonoBehaviour
{
    // Start icinde parlaklik tanimla ve yazdir
}

Örnek çözüm

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

Soru
Properties { _Glossiness ("Smoothness", ____(0, 1)) = 0.5 }
Cevap
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

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