CodeBlanks Logo Icon CodeBlanks

Diyalog yürütücü

Diyalogları sırayla okuyan bir yürütücü öğrenirsin.

Diyalog Yürütücü (Dialogue Runner)

Yüklenen diyalog verisini sırayla okuyan, oyuncu tıkladıkça bir sonraki cümleye geçen kontrol sınıfına Dialogue Runner (veya Dialogue Manager) denir. Yürütücü aktif satırın indeksini hafızada tutar.

public class DialogueRunner : MonoBehaviour {
    private int currentIndex = 0;
    public List<string> lines;

    public void NextLine() {
        currentIndex++;
    }
}

Oyuncu fareye tıkladığında veya etkileşim tuşuna bastığında NextLine() çağrılarak diyalog akışı ilerletilir.

Diyalog Bitişini Denetleme

Her adımda currentIndex değeri replik listesinin boyutu (lines.Count) ile karşılaştırılır. Eğer listenin sonuna gelinmişse diyalog sonlandırılır ve arayüz kapatılır.

if (currentIndex >= lines.Count) {
    EndDialogue();
} else {
    DisplayLine(lines[currentIndex]);
}

Diyalog bittiğinde oyuncunun hareket kontrolleri tekrar etkinleştirilerek normal oynanışa dönülür.

Uygulama Diyalog yürütücü ilerlemesi

Bir Start metodu tanımla. İçinde int aktifIndex = 1; tanımla ve konsola "Aktif replik sirasi: " + aktifIndex yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class RunnerTester : MonoBehaviour
{
    // Start icinde aktifIndex tanimla ve yazdir
}

Örnek çözüm

Player.cs
using UnityEngine;

public class RunnerTester : MonoBehaviour
{
    void Start()
    {
        int aktifIndex = 1;
        Debug.Log("Aktif replik sirasi: " + aktifIndex);
    }
}

Beklenen çıktı

Aktif replik sirasi: 1

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir Dialogue Runner sınıfında oyuncu bir tuşa bastığında sonraki diyalog cümlesine geçişi sağlayan mantık nedir?

  • Oyunu hemen kapatıp baştan başlatmak
  • Sahnedeki tüm UI bileşenlerini silmek
  • Ekrandaki tüm 3D modelleri gizlemek
  • Aktif diyalog indeksini 1 artırıp sıradaki cümleyi UI'a göndermek Doğru cevap

Açıklama: Diyalog yürütücü, aktif indeks değerini bir artırarak sıradaki repliği ekrana basar.

2 Diyalog sonu kontrolü

Soru
if (currentIndex >= lines.____) { EndDialogue(); }
Cevap
if (currentIndex >= lines.Count) { EndDialogue(); }

Açıklama: C# List koleksiyonunun eleman sayısını öğrenmek için 'Count' özelliği kullanılır.

3 Diyalog yürütme kavramları

Kavram Anlamı
Dialogue Runner Diyalog akışını yürüten kontrolcü
currentIndex Aktif gösterilen cümlenin sırası
NextLine Bir sonraki repliğe geçme metodu
EndDialogue Konuşmayı sonlandırıp UI'ı kapatır

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