Diyalog veri modeli
- Oyun Geliştirme kursu
- İleri seviye
- Ders 31/71
- 4 dk
Diyalog düğümü ve çizgi veri modelini öğrenirsin.
Diyalog Veri Modeli
Bir diyalog sisteminin temelinde konuşma satırlarını temsil eden veri modelleri yer alır. Her bir replik (line); konuşmacının adını (speaker), söylenen metni (text) ve gerekirse ses klibini içerir.
[System.Serializable]
public class DialogueLine {
public string speaker;
public string text;
}C# sınıflarının başına [System.Serializable] eklenerek bu verilerin Inspector'da görünmesi ve JSON formatına dönüştürülebilmesi sağlanır.
Diyalog Düğümleri (Dialogue Node)
Bir sahnede sıralı birkaç replik bir araya gelerek bir Dialogue Node (konuşma düğümü) oluşturur. Düğüm bir kimlik numarası (id), replik listesi ve sonraki düğümün kimliğini (nextId) tutar.
[System.Serializable]
public class DialogueNode {
public int id;
public List<DialogueLine> lines;
public int nextId;
}Bu düğüm yapısı sayesinde diyaloglar bloklar halinde organize edilir ve akış sırası yönetilir.
Uygulama Diyalog satırı modeli
Bir Start metodu tanımla. İçinde string speaker = "Rehber"; tanımla ve konsola "Konusmaci: " + speaker metnini Debug.Log ile yazdır.
Başlangıç kodu
using UnityEngine;
public class DialogueModelTester : MonoBehaviour
{
// Start icinde speaker degiskenini tanimla ve yazdir
}Örnek çözüm
using UnityEngine;
public class DialogueModelTester : MonoBehaviour
{
void Start()
{
string speaker = "Rehber";
Debug.Log("Konusmaci: " + speaker);
}
}Beklenen çıktı
Konusmaci: Rehber
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir diyalog satırı veri modelinde en temel olarak hangi iki bilginin tutulması gerekir?
- Fizik çarpışma katmanı ve ses mikseri
- GPU çekirdek hızı ve RAM boyutu
- Konuşmacı adı ve replik metni Doğru cevap
- Ekran çözünürlüğü ve shader kodu
Açıklama: Bir diyalog repliğinin kime ait olduğunu ve ekranda ne yazacağını bilmek için konuşmacı adı ve metin alanları esastır.
2 Serileştirilebilir diyalog satırı
[System.____] public class DialogueLine { public string text; }
[System.Serializable] public class DialogueLine { public string text; }
Açıklama: Unity'de veri modelinin serileştirilebilmesi için '[System.Serializable]' niteliği kullanılır.
3 Diyalog modeli terimleri
| Kavram | Anlamı |
|---|---|
DialogueLine |
Tek bir replik ve konuşmacı verisi |
DialogueNode |
Replikler grubunu tutan konuşma düğümü |
speaker |
Sözü söyleyen karakterin adı |
nextId |
Akışın devam edeceği düğüm kimliği |