Seçenek dalları
- Oyun Geliştirme kursu
- İleri seviye
- Ders 34/71
- 4 dk
Seçime göre dallanan diyalog akışını öğrenirsin.
Seçenek Dalları (Branching Dialogue)
Rol yapma ve macera oyunlarında diyaloglar tek bir çizgide ilerlemez; oyuncuya seçim hakkı verilir. Her bir Choice (seçenek), oyuncuya gösterilecek metni ve seçildiğinde gidilecek hedef düğümün kimliğini (targetNodeId) taşır.
[System.Serializable]
public class DialogueChoice {
public string choiceText;
public int targetNodeId;
}Oyuncu bir seçeneğe tıkladığında akış doğrusal sıradan çıkarak belirtilen düğüme dallanır.
Diyalog Grafı ve Düğüm Atlama
Düğümler seçenekler aracılığıyla birbirine bağlandığında bir diyalog grafı (graph) ortaya çıkar. Oyuncu seçim yaptığında yürütücü targetNodeId adresini bulur ve oradaki replikleri oynatmaya başlar.
public void SelectChoice(int targetNodeId) {
currentNode = FindNodeById(targetNodeId);
currentIndex = 0;
ShowCurrentLine();
}Bu mekanizma sayesinde oyuncunun kararlarına göre farklı görevler açılabilir veya hikaye dallara ayrılabilir.
Uygulama Seçenek dalı yönlendirme
Bir Start metodu tanımla. İçinde int hedefDugum = 5; tanımla ve konsola "Secim yapildi, hedef dugum: " + hedefDugum yazdır.
Başlangıç kodu
using UnityEngine;
public class ChoiceRouter : MonoBehaviour
{
// Start icinde hedefDugum tanimla ve yazdir
}Örnek çözüm
using UnityEngine;
public class ChoiceRouter : MonoBehaviour
{
void Start()
{
int hedefDugum = 5;
Debug.Log("Secim yapildi, hedef dugum: " + hedefDugum);
}
}Beklenen çıktı
Secim yapildi, hedef dugum: 5
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Dallanan bir diyalog sisteminde bir seçeneğin (choice) sahip olması gereken en temel özellikler nelerdir?
- Ekran kartının fan dönüş hızı
- Oyuncuya gösterilecek metin ve yönlendireceği hedef düğüm kimliği Doğru cevap
- Kayıt dosyasının dosya yolu ve boyutu
- Karakterin zıplama yüksekliği ve hızı
Açıklama: Seçenekler oyuncunun göreceği metni ve seçildiğinde hangi düğüme atlanacağını belirleyen hedef kimliğini (targetNodeId) taşır.
2 Seçenek yönlendirmesi
public void SelectChoice(int ____) { currentNodeId = targetNodeId; }
public void SelectChoice(int targetNodeId) { currentNodeId = targetNodeId; }
Açıklama: Seçilen dalın hedef düğümünü belirtmek için 'targetNodeId' parametresi kullanılır.
3 Dallanma kavramları
| Kavram | Anlamı |
|---|---|
Choice |
Oyuncunun tıklayabileceği cevap seçeneği |
Branch |
Seçime göre dallanan konuşma rotası |
targetNodeId |
Seçim sonrası geçilecek düğüm kimliği |
Dialogue Graph |
Birbirine bağlı düğümler ağı |