Fiecare instanță separată a unui joc în desfășurare oferă un parametru "Tip de joc" al serverului Master Type. Atunci când un jucător se conectează și cere serverului Master să se potrivească cu tipul de tip de joc. serverul răspunde prin trimiterea unei liste de jocuri care rulează, cu numărul actual de playere conectate în fiecare dintre ele și dacă este necesară o parolă pentru conectare. Pentru a transfera aceste date, se folosesc două funcții: MasterServer.RegisterHost () pentru server și MasterServer.RequestHostList () pentru clientul playerului.
Când este apelat RegisterHost. de la tine este necesar să specificați trei argumente - gameTypeName (tipul de joc menționat anterior), gameName și comentariu - pentru ca gazda să se înregistreze. RequestHostList utilizează ca argument argumentul gameTypeName al gazdelor la care doriți să vă conectați. O listă a tuturor gazdelor înregistrate de acest tip va fi transmisă clientului solicitant. Aceasta este o operație asincronă, iar întreaga listă va fi obținută prin intermediul PollHostList (). după ce a fost complet transferat.
Funcțiile NAT punchthrough sunt procesate pe Master Server, de fapt, printr-un proces separat numit Facilitator. dar Master Server-ul Unity rulează ambele servicii în paralel.
Înregistrarea jocului (Înregistrarea unui joc)
Înainte de a înregistra un joc, este important să activați sau să dezactivați funcțiile NAT, în funcție de faptul dacă NAT este suportat de gazdă; puteți face acest lucru utilizând parametrul useNat din Network.InitializeServer.
Serverul poate fi rulat cu un cod ca acesta:
Exemplu de script C #
Exemplul de script JS
Dacă gazda a activat NAT fără a fi nevoie, va fi disponibilă în continuare. Cu toate acestea, clienții care nu pot implementa punch-uri NAT pot interpreta greșit că nu se pot conecta, deoarece serverul a activat NAT.
Conectarea la joc
În timpul înregistrării sau solicitărilor, este trimis un obiect HostData. Acesta conține următoarele informații despre gazdă:
Un GUID de rețea (identificatorul unic global) al gazdei. Necesar pentru conectare prin folosirea metodei NAT.
Aceste informații pot fi folosite de clienți pentru a vedea conectivitatea gazdelor. Când NAT este activat, trebuie să utilizați GUIDul gazdă pentru a vă conecta. Toate acestea sunt tratate automat pentru dvs. când primiți HostData când sunteți conectat. Șablonul pentru conexiune ar putea arăta astfel:
Exemplu de script C #
Exemplul de script JS
Acest exemplu afișează toate informațiile relevante despre gazdă primite de la Master Server. La aceasta pot fi adăugate alte informații utile, cum ar fi ping-ul, sau locația geografică a gazdei.
NAT punchthrough
Prezența punctului de trecere NAT poate fi determinată dacă un anumit computer este potrivit pentru a fi utilizat ca server. În timp ce unii clienți se pot conecta, alții pot avea probleme la conectarea la orice server NAT.
O mai mare
Unity Technologies are, de asemenea, un Master Server disponibil pentru testarea și acest server va fi utilizat în mod implicit. Cu toate acestea, codul sursă este disponibil în mod liber, iar serverul poate fi utilizat în sistemele de operare Windows, Linux și Mac OS. Pe lângă construirea unui proiect din sursă, există cazuri în care trebuie să modificați modul în care Master Server gestionează informațiile și modul în care acestea comunică. De exemplu, puteți optimiza procesarea datelor gazdă sau puteți limita numărul de clienți returnați în lista gazdă. Astfel de modificări vor necesita modificări ale codului sursă. Informații despre acest lucru pot fi găsite pe pagina Master Server Build.
Încărcarea unui strat pe o rețea
Construiți-vă propriile servere de rețea Unity.