Unity-Technologies / multiplayer
On december 16, 2021 by adminVälkommen till Unity Real-time Multiplayer Alpha repository!
Här hittar du alla resurser du behöver för att börja skapa prototyper för dina egna realtids-multiplayer-spel.
NetCode Manual
Transport Manual
Klicka här för att besöka forumet
Inkluderat innehåll
-
sampleproject/
– Unity Project som innehåller alla flerspelarprover. -
sampleproject/Assets/Samples/Asteroids
– Asteroids klon som demonstrerar de centrala nätkodskoncepten. -
sampleproject/Assets/Samples/LagCompensation
– Prov som visar lagkompensation baserat på Unity Physics. -
sampleproject/Assets/Samples/NetCube
– Exempel som visar grundläggande användning av nätkod. -
sampleproject/Assets/Samples/Ping
– Exempel som visar grundläggande användning av transport. -
sampleproject/Assets/Samples/Soaker
– En soak tester för transporten, för att testa typisk produktionsbelastning. -
sampleproject/Assets/Samples/CustomNetworkInterface
– Ett exempel som visar hur man använder ett spelspecifikt socketimplementering i Unity Transport.
Unity Transport Package
Det nya Unity Transport Package som kommer att ersätta UNet low-level API:t. Förhandsgranskningen av transportpaketet stöder upprättande av anslutningar och sändning av meddelanden till aremote host. Det innehåller också verktyg för att serialisera dataströmmar som ska skickas över nätverket.För mer information om transportpaketet, se Unity Transport Documentation
Unity NetCode Package
Nätkodspaketet tillhandahåller de flerspelarfunktioner som behövs för att implementera världssynkronisering i ett flerspelarspel. Det använder transportpaketet för funktionaliteten på socketnivå och är gjort för Entity Component System.Några saker på högre nivå som det tillhandahåller är
- Server auktoritativ synkroniseringsmodell.
- RPC-stöd, användbart för kontrollflöde eller nätverkshändelser.
- Client / server world bootrapping så att du har en tydlig åtskillnad av logik och du kan köra en server med flera klienter i en enda process, som redaktören vid tester.
- Synkronisera enheter med interpolering och prediktion på klientsidan som fungerar som standard.
- Verktyg för felsökning av nätverkstrafik
- Stöd för flödeskonvertering av GameObject så att du kan använda en hybridmodell för att lägga till flerspelarlägenheter i ett GameObject/MonoBehaviour-baserat projekt.
För mer information om nätkodspaketet, se Unity NetCode Documentation
Samples
Ping
Ping-exemplet är en bra utgångspunkt för att lära sig om alla delar som ingår i transportpaketet. Ping-klienten upprättar en anslutning till ping-servern,skickar ett ping-meddelande och tar emot ett pong-svar. När pong har tagits emot kommer klienten att avbryta anslutningen.Det är ett enkelt exempel som visar hur man använder det nya transportpaketet Unity.Ping består av flera scener, som alla återfinns i sampleproject/Assets/Scenes/
.
-
PingMainThread.unity
– En implementering av ping som endast är avsedd för huvudtråden. -
Ping.unity
– En helt jobbifierad version av ping-klienten och -servern. -
PingClient.unity
– Samma jobbifierade klientkod somPing.unity
, men utan servern. -
PingServer.unity
– Den dedikerade serverversionen av den jobbifierade ping. En headless (eller Server Build i 2019.1) Linux 64 bit build av den här scenen är det som ska distribueras till Multiplay. -
PingECS.unity
– En ECS-version av det jobbifierade ping-exemplaret.
Soaker
Ett stresstest som skapar ett bestämt antal klienter och en server i samma process. Varje klient kommer att skicka meddelanden i den angivna hastigheten med den angivna storleken och mäta statistiken.
Asteroids
Ett litet spel med funktionerna i Unity NetCode Package.
LagCompensation
Ett exempel som visar ett sätt att implementera laggkompensation baserat på Unity Physics. I ett spel baserat på Unity NetCode kommer klienten att visa ett gammalt världsläge, fördröjningskompensation gör det möjligt för servern att ta hänsyn till detta när den utför raycasts så att spelaren kan sikta på det som faktiskt visas på klienten.
NetCube
Ett litet exempel med funktioner i Unity NetCode Package. Detta är den kod som används i Unite-presentationen om NetCode
Installation
För att prova exemplen i det här arkivet behöver du bara öppnasampleprojects/
i Unity.Om du vill skapa ett nytt Unity-projekt med hjälp av de här paketen är det också möjligt.
- Säkerställ att du har en version av Unity som stöds (2019.3 eller nyare)
- Skapa ett nytt Unity-projekt
- Om du vill använda NetCode, lägg till
Unity NetCode
från pakethanteraren. - Om du vill använda transport men inte NetCode, lägg till
Unity Transport
från pakethanteraren. - Paketens beroenden kommer automatiskt att dras in i projektet
Lämna ett svar