Test ve Simülasyon
Bu kılavuz, oyununuzu mobil cihaza kurmadan veya WebGL build almadan, Unity editörü üzerinde RemoteNex Simülatörü ile nasıl test edeceğinizi adım adım anlatır.
1. RemoteNexManager Prefabını Sahneye Ekle
SDK kurulumunun ardından sahnenize RemoteNex'in simülatör bileşenini eklemeniz gerekir.
- Unity'nin Project penceresinde
Packages/RemoteNex SDK/Prefabsklasörünü açın. RemoteNexManagerprefabını Hierarchy penceresine sürükleyip bırakın.
Oyun çalışırken arka planda yerel bir web sunucusu (localhost:8080) başlatır ve varsayılan tarayıcınızda simülatör arayüzünü otomatik olarak açar. Tarayıcıdan gelen tüm kontrolcü verilerini Unity'e, Unity'den giden tüm durum mesajlarını ise tarayıcıya iletir.
2. HTML Dosyalarını Bağla
Sahneye eklediğiniz RemoteNexManager objesine tıklayın ve Inspector panelinde şu alanları doldurun:
| Alan | Bağlanacak Dosya |
|---|---|
| Simulator Html File | simulator.html |
| Master Html File | Oyununuzun master.html dosyası |
| Normal Html File | Oyununuzun normal.html dosyası |
Her alana ilgili dosyayı Project penceresinden sürükleyip bırakın.
Simülatöre eklenen ilk oyuncu her zaman master (oda kurucusu) rolünü alır ve master.html kontrolcüsünü görür; oyunu başlatma yetkisi yalnızca onda olur. Sonradan eklenen tüm oyuncular ise normal.html kontrolcüsünü görür. Her oyun için bu iki dosyayı ayrı ayrı tasarlamanız gerekir.
3. RemoteNexRelay Bileşenini Ekle
Simülatörden gelen verilerin oyun kodunuza ulaşabilmesi için RemoteNexRelay bileşenini bağlamanız gerekir.
- Hierarchy'de kendi
GameManagerobjenizi seçin (yani oyun mantığınızın bulunduğu obje). - Inspector'da Add Component butonuna tıklayın.
- Arama kutusuna
RemoteNexRelayyazın ve bileşeni ekleyin.
4. Olay Bağlantısını Kur (Kritik Adım)
Bu adım, simülatörden gelen verinin sizin GameManager kodunuza ulaşmasını sağlar.
RemoteNexRelaybileşenindeki "On Input Received (String)" başlığının altındaki (+) butonuna basın.- Açılan None (Object) kutusuna,
GameManagerscriptinizin bulunduğu objeyi sürükleyin (genellikle üzerinde çalıştığınız objenin kendisi). - No Function açılır menüsüne tıklayın ve şu yolu izleyin:
GameManager→HandleInput
Listede iki adet HandleInput göreceksiniz:
- Üstteki (Dynamic String): ✅ BUNU SEÇİN. Yanında yazı kutusu çıkmaz.
- Alttaki (Static Parameters): ❌ Bunu seçmeyin. Yanında bir yazı kutusu belirir.
Yanlış seçim yapılırsa kontrolcü verileri oyununuza hiç ulaşmaz.
5. Testi Başlat
Kurulum tamamlandı. Artık test edebilirsiniz.
- Unity editöründe Play ▶ tuşuna basın.
- Varsayılan web tarayıcınız otomatik olarak açılır ve RemoteNex Simülatör arayüzü yüklenir.
- Arayüzdeki "Oyuncu Ekle" butonuna tıklayın. Ekranda sanal bir telefon belirip oyununuza "yeni oyuncu katıldı" sinyali gönderilir.
- İkinci kez "Oyuncu Ekle" diyerek ikinci bir telefon açabilirsiniz; bu telefon otomatik olarak
normalrolüyle gelir. - Sanal telefon ekranındaki butonlara fare ile tıklayarak kontrolcü inputlarını test edebilirsiniz.
RemoteNexManager Inspector'ında iki ek ayar bulunur:
- Artificial Ping (ms): Gerçek ağ gecikmesini taklit etmek için mesajlara yapay gecikme ekler. Varsayılan:
120ms. - Simulate React Loading Delay: Her oyuncu ilk bağlandığında mobil uygulamanın yüklenme süresini (1.5 saniye) simüle eder. Gerçek kullanıcı davranışını test etmek için açık bırakın.
Sorun Giderme
| Sorun | Çözüm |
|---|---|
| Tarayıcı açılmıyor | RemoteNexManager Inspector'ında Auto Open Browser kutucuğunun işaretli olduğundan emin olun. İşaretliyse tarayıcıya http://localhost:8080 adresini elle yazın. |
| Oyuncu ekliyorum ama veri gelmiyor | RemoteNexRelay bağlantısında HandleInput'u Static bölümden seçmiş olabilirsiniz. Adım 4'ü tekrarlayın ve Dynamic String bölümünden seçin. |
| HTML alanları Inspector'da görünmüyor | RemoteNexManager objesini değil, sahnenizde başka bir objeyi seçmiş olabilirsiniz. Hierarchy'den doğru objeyi seçtiğinizi kontrol edin. |
| Karakter hareket etmiyor | GameManager kodunuzda HandleInput metodunun mevcut olduğunu ve OnEnable/OnDisable içinde RemoteNex.OnInputReceived event subscription'ının yapıldığını kontrol edin. |
| Port zaten kullanımda hatası | RemoteNexManager Inspector'ındaki Port değerini (varsayılan: 8080) farklı bir sayıyla değiştirin (örn: 8181). |