Ana içeriğe geç

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.

  1. Unity'nin Project penceresinde Packages/RemoteNex SDK/Prefabs klasörünü açın.
  2. RemoteNexManager prefabını Hierarchy penceresine sürükleyip bırakın.
Bu Prefab Ne Yapar?

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:

AlanBağlanacak Dosya
Simulator Html Filesimulator.html
Master Html FileOyununuzun master.html dosyası
Normal Html FileOyununuzun normal.html dosyası

Her alana ilgili dosyayı Project penceresinden sürükleyip bırakın.

master.html ve normal.html Nedir?

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.

  1. Hierarchy'de kendi GameManager objenizi seçin (yani oyun mantığınızın bulunduğu obje).
  2. Inspector'da Add Component butonuna tıklayın.
  3. Arama kutusuna RemoteNexRelay yazı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.

  1. RemoteNexRelay bileşenindeki "On Input Received (String)" başlığının altındaki (+) butonuna basın.
  2. Açılan None (Object) kutusuna, GameManager scriptinizin bulunduğu objeyi sürükleyin (genellikle üzerinde çalıştığınız objenin kendisi).
  3. No Function açılır menüsüne tıklayın ve şu yolu izleyin: GameManagerHandleInput
⚠️ Doğru Seçimi Yapmak Kritik

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.

  1. Unity editöründe Play ▶ tuşuna basın.
  2. Varsayılan web tarayıcınız otomatik olarak açılır ve RemoteNex Simülatör arayüzü yüklenir.
  3. Arayüzdeki "Oyuncu Ekle" butonuna tıklayın. Ekranda sanal bir telefon belirip oyununuza "yeni oyuncu katıldı" sinyali gönderilir.
  4. İkinci kez "Oyuncu Ekle" diyerek ikinci bir telefon açabilirsiniz; bu telefon otomatik olarak normal rolüyle gelir.
  5. Sanal telefon ekranındaki butonlara fare ile tıklayarak kontrolcü inputlarını test edebilirsiniz.
Simülatörün Gerçekçilik Özellikleri

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ıyorRemoteNexManager 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 gelmiyorRemoteNexRelay 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üyorRemoteNexManager objesini değil, sahnenizde başka bir objeyi seçmiş olabilirsiniz. Hierarchy'den doğru objeyi seçtiğinizi kontrol edin.
Karakter hareket etmiyorGameManager 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).