Usuari/a: -- Sortir --

Tutorial Menú Multiplayer Avançat

Importem la carpeta Scripts, Sprites i Prefabs and GameObjects.

Anirem a projecte, scenes i crearem 2 scenes més (noms: MainMenu i ServerClientMenu) la default li canviaré el nom per Lobby_Game.

Un cop tot llest preparem el menú del multi. Anirem a scene MainMenu i arrossegarem el Canvas_Main (prefab) al jerarquia:

Crearem a jerarquia un Empty Object i li anomenarem Manager_Network. A aquest, li afegirem com a components 3 scripts: ClientHUD, ServerHUD i CustomNetworkManager. També a jerarquia, la càmera principal la posarem dins del Manager_network:

Main Camera li canviaré el nom per Menu_Camera, canviaré la seva posició i escala a pos=0, 3.24, -6.58 i scale=0.5, 0.5, 0.5. També li afegiré dues components, GUI Layer i Flare Layer:

Afegirem els prefabs Canvas_Client i Canvas_Server al Manager_Network:

Fet això configurarem el Canvas_Main, anirem a la component del Script Main Menu i afegirem els següents:

  • Server Canvas: Canvas_Server (dins de Manager_Network).
  • Client Canvas: Canvas_Client (dins de Manager_Network).
  • Client Hud Script: Manager_Network (de jerarquia).
  • Server HUD Script: Manager_Network (de jerarquia).
  • Per acabar aquest punt, al Manager_Network li posarem la Tag NetworkManager i a Menu_Camera la tag MainCamera (Si alguna tag no surt a la llista la creem):

    Toca acabar de configurar el Manager_Network. Hem afegit 3 components com scripts abans però no estan relacionats. Al Manager_Network i la component Client HUD, arrossegarem de jerarquia/Manager_Network/Canvas_Server/Panel les seves corresponents fins Clients Info:

  • CHECKING DINS DE Button_GetIP (Image_Checking) (Bloquejar el inspector per facilitar feina)
  • Ha de quedar així:

    Ara toca configurar el Client Hud Component també (Aquest és més ràpid i fàcil jerarquia/Manager_Network/Canvas_Client):

    Ha de quedar:

    Per acabar, falta modificar la component Custom Network Manager. Abans de començar, obrirem les altres dues scenes i les afegirem a build settings. No importa l’ordre:

    Ara ja podem modificar la component (tornem a la scene MainMenu i anem a la component CustomNetworkManager).

    Afegirem a Offline Scene ---> ServerClientMenu i a Online Scene ---> Lobby_Game

    Activem la configuració avançada i podrem canviar el màxim de connexions des d’aquí. Posaré 8.

    A baix, falta posar 3 valors a Clients Info Text posarem jerarquia/Manager_Network/Canvas_Server/Panel/Image_ClientsInfo/TextClientsInfo

    I a les altres dues posarem el Manager_Network de jerarquia:

    Crearem un Empty anomenat EventSystem i li afegirem com a components: Event System i Standalone Input Mode i a l’opció Drag Threshold posarem 5:

    Event System de jerarquia l’hem de posar a les 3 scenes. Podem copiar i enganxar. Jo he fet un prefab i aquest l’he posat a les altres scenes:

    Ja casi està, només falta acabar de configurar uns botons i ja tindrem el multiplayer llest. Per no fer-ho molt llarg ho resumirem en:

  • Anirem a jerarquia, Manager_Network i allà tenim Canvas_Client i Canvas_Server.
  • Tant a Client com a Server, tenim buttons. Exemple (Button_StartServer).
  • Hem d’anar a cada botó i a les seves components, on posa On Click () hem d’afegir sempre el Manager_Network de jerarquia. Exemple:
  • També hem d’afegir la seva funció corresponent, per això deixo una llista de totes:

    Canvas_Server:

  • Button_StartServer ---> ServerHUD.StartServerCustom
  • Button_StopServer ---> ServerHUD.StopHostCustom
  • Button_GetIP ---> ServerHUD.GetIP
  • Button_ResetRettings ---> ServerHUD.ResetToDefault
  • Canvas_Client:

  • Button_ConnectToServer ---> ClientHUD.ConnectToServer
  • Button_Disconnect ---> ClientHUD.ButtonDiscConnect
  • Exemple de com queda:

    Fet això tenim ja preparat una interfície amb diferents paràmetres de configuració per Unity, tant client com servidor. Si volem fer un joc, podem aplicar aquest tutorial al nostre joc. L’exemple és el joc que us he facilitat.

    Detalls: Al connectar al servidor, l’escena on comença el joc es diu Lobby_Game. Per comprovar que funciona podeu compilar el programa, obrir uns quants, fer un de servidor i els altres de clients. Connecteu com a localhost i veureu que al servidor us reconeix i diu que hi ha més d’un client connectat. Si voleu realitzar la connexió fora de la vostra xarxa, només haureu de donar clic al botó de “Find Server IP Address” i obrir el port seleccionat (per defecte el 7777). Tot el procediment és igual.