Unity - kézi master kiszolgáló

A futó játék minden egyes példánya a Game Type Master Server "Game Type" paraméterét biztosítja. Amikor egy játékos csatlakozik, és megkéri a mester szervert, hogy illeszkedjen a játéktípus típusához. a szerver válaszol, elküldi a megfelelő futó játékok listáját, a hozzájuk tartozó játékosok aktuális számával és a jelszó megadásával. Az adatok átviteléhez két funkciót használunk: a kiszolgáló MasterServer.RegisterHost () és a MasterServer.RequestHostList () a lejátszó kliense számára.

Amikor a RegisterHost nevet kapja. tőled meg kell adnia három argumentumot - a gameTypeName (előzőleg említett játéktípus), a játéknév és a megjegyzés -, hogy a fogadó regisztráljon. A RequestHostList argumentumként használja a hostok játékkódját, amelyhez csatlakozni szeretne. Az összes ilyen típusú regisztrált gazda listáját át kell adni a kérelmező kliensnek. Ez egy aszinkron művelet, és a teljes lista a PollHostList () segítségével érhető el. miután teljes mértékben átruházták.

A NAT áttörési funkciókat a Master Server-en feldolgozzák, valójában egy különálló folyamat, a Facilitator. de a Unity Master Server mindkét szolgáltatást párhuzamosan futtatja.

Játék regisztrálása (játék regisztrálása)

Játék regisztrációja előtt fontos, hogy engedélyezze vagy tiltsa le a NAT funkciókat, attól függően, hogy a NAT-t a fogadó támogatja-e; ezt megteheti a UseNat paraméter használatával a Network.InitializeServer segítségével.

A kiszolgáló ilyen kóddal futtatható: -

C # parancsfájl

JS script példa

Ha a fogadó szükségtelenül engedélyezte a NAT-t, akkor továbbra is elérhető lesz. Azok a kliensek azonban, akik nem képesek végrehajtani a NAT áttörést, tévesen értelmezhetik azt, hogy nem tudnak kapcsolódni, mert a kiszolgáló engedélyezte a NAT szolgáltatást.

Csatlakozás a játékhoz

Regisztráció vagy kérések esetén egy HostData objektum kerül elküldésre. A következő információkat tartalmazza a fogadóról:

A gazdagép hálózati GUID (Global Unique Identifier). Szükséges a NAT áttöréshez való csatlakozáshoz.

Ezeket az információkat az ügyfelek használhatják a gazdagépek összekapcsolhatóságának megtekintéséhez. Ha a NAT engedélyezve van, akkor a gazdagép-GUID-t kell használni a kapcsolathoz. Mindez automatikusan kezeli az Ön számára, amikor a HostData-t kapja csatlakoztatáskor. A kapcsolat sablonja így néz ki:

C # parancsfájl

JS script példa

Ez a példa a Master Server-ből érkezett összes vonatkozó gazdainformációt jeleníti meg. Ehhez más hasznos információkat is megadhatunk, például a pinget vagy a gazdagépek földrajzi helyét.

NAT punchthrough

A NAT áttörés jelenlétét meghatározhatja, hogy egy adott számítógép alkalmas-ea kiszolgálónak. Bár egyes ügyfelek képesek lehetnek a kapcsolatra, másoknak problémái lehetnek, ha bármilyen NAT-kiszolgálóhoz csatlakoznak.

Greater

A Unity Technologies is rendelkezik egy működő Mester szerverrel, amely tesztelés céljából rendelkezésre áll, és ezt a kiszolgálót alapértelmezésben használják. A forráskód azonban szabadon hozzáférhető, és a kiszolgáló használható Windows, Linux és Mac OS operációs rendszereken. Amellett, hogy egyszerűen építenénk egy projektet a forrásból, vannak olyan esetek, amikor meg kell változtatnunk a Master Server által kezelt információk kezelését és kommunikációját. Például optimalizálhatja a gazdaadatok feldolgozását, vagy korlátozhatja a fogadó listára visszajuttatott ügyfelek számát. Az ilyen változásokhoz szükség lesz a forráskód módosítására. Erről az információ a Master Server Build oldalon található.

Egy réteg feltöltése hálózaton keresztül

Készítsen saját Unity hálózati szervereket.