Diyalog yürütücü
- Oyun Geliştirme kursu
- İleri seviye
- Ders 33/71
- 4 dk
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
using UnityEngine;
public class RunnerTester : MonoBehaviour
{
// Start icinde aktifIndex tanimla ve yazdir
}Örnek çözüm
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ü
if (currentIndex >= lines.____) { EndDialogue(); }
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 |