Unity Unet Disconnect Hakkında

      Unity Unet Disconnect Hakkında

      Merhabalar

      Unet hakkında bilgisi olanlar muhakkak vardır, yardımcı olmalarını istediğim bir konu var.

      Oyunda client bağlantısı kesildiği an sahnedeki tüm networkidentity objeleri siliniyor ve oyunda hatalar doğal olarak başlıyor. En azından internet bağlantısı kesildikten 10 saniye kadar sonra networkidentity ler silinsin, 10 saniye içinde gelirse yeniden devam etsin istiyorum.

      Bunun için ne yapabilirim
      uNet API'lerini incelemelisin aslinda algorithma seklinde dusununce nerde yapacagin cok belli.OnServerDisconnect kullanmalisin CustomNetworkManager olusturup.Yazdigim ornek kod tekrar geldiginde bir sekilde transform.name veya farkli bir sekilde unique olan birseyle esit olup olmadigin kontrol ettirip onu OnServerAddPlayer'da ozellikle NetworkReader'li olanina isim yollayip kontrol ettirip NetworkServer.ReplacePlayerForConnection ile yapabilecegini dusunuyorum.Clonelama yontemi.

      Source Code

      1. public override void OnServerDisconnect (NetworkConnection conn)
      2. {
      3. GameObject protectPrefab = (GameObject)Instantiate(conn.playerControllers[0].gameObject, conn.playerControllers[0].gameObject.transform, conn.playerControllers[0].gameObject.transform.rotation);
      4. protectPrefab.name = "ProtectedPrefab";
      5. NetworkServer.Spawn (protectPrefab);
      6. base.OnServerDisconnect (conn);
      7. }

      Post was edited 1 time, last by “Shevy” ().

      Shevy wrote:

      uNet API'lerini incelemelisin aslinda algorithma seklinde dusununce nerde yapacagin cok belli.OnServerDisconnect kullanmalisin CustomNetworkManager olusturup.Yazdigim ornek kod tekrar geldiginde bir sekilde transform.name veya farkli bir sekilde unique olan birseyle esit olup olmadigin kontrol ettirip onu OnServerAddPlayer'da ozellikle NetworkReader'li olanina isim yollayip kontrol ettirip NetworkServer.ReplacePlayerForConnection ile yapabilecegini dusunuyorum.Clonelama yontemi.

      Source Code

      1. public override void OnServerDisconnect (NetworkConnection conn)
      2. {
      3. GameObject protectPrefab = (GameObject)Instantiate(conn.playerControllers[0].gameObject, conn.playerControllers[0].gameObject.transform, conn.playerControllers[0].gameObject.transform.rotation);
      4. protectPrefab.name = "ProtectedPrefab";
      5. NetworkServer.Spawn (protectPrefab);
      6. base.OnServerDisconnect (conn);
      7. }



      Bu respawn yöntemini biliyorum hocam eski objeyi bulup tekrar bağlanan oyuncuya veriliyor. Bu oyunda biraz karmaşaya sebep oluyor pek sağlıklı olmadı benim oyunda da acaba dedim client'in disconnect olması sorgusunun süresi ayarlanabiliyor mudur bunu merak ettim. İnternet koptuktan 2 saniye sonra disconnect oluyor bu saniyeyi arttırabilir miyiz bir yöntemle