Advertisement
Guest User

Host code

a guest
Aug 27th, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.57 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEngine.Networking;
  4. using UnityEngine.Networking.Match;
  5. using Steamworks;
  6. using NATTraversal;
  7.  
  8. public class SelectHost : Selectable {
  9.     public DestroyOnNetworkConnect manager;
  10.     protected CallResult<LobbyCreated_t> createLobby;
  11.     // Use this for initialization
  12.     void Start () {
  13.     }
  14.    
  15.     public override void OnSelect ()
  16.     {
  17.         if(SteamManager.Initialized) {
  18.             createLobby = CallResult<LobbyCreated_t>.Create(LobbyCallback);
  19.             print("Creating lobby...");
  20.             var handle = SteamMatchmaking.CreateLobby(ELobbyType.k_ELobbyTypePublic, 4);
  21.             createLobby.Set(handle);
  22.             // Do this on the host in OnCreateMatch() after creating the steam lobby
  23.         } else {
  24.             print("SteamManager not Initialized?");
  25.         }
  26.     }
  27.  
  28.     private void LobbyCallback(LobbyCreated_t pCallback, bool IOFailure) {
  29.         if(IOFailure) {
  30.             print("IOFailure.");
  31.             return;
  32.         }
  33.         print("Lobby callback successful.");
  34.         string matchName = SteamFriends.GetPersonaName();
  35.         print("Creating lobby under name: " + matchName);
  36.         manager.StartHostAll(matchName, (uint) 4);
  37.         //manager.StartHost();
  38.         print("Setting lobby for reference");
  39.         manager.steamIDLobby = new CSteamID(pCallback.m_ulSteamIDLobby);
  40.         SteamMatchmaking.SetLobbyData(manager.steamIDLobby, "guid", manager.cachedHelper.guid.ToString());
  41.         SteamMatchmaking.SetLobbyData(manager.steamIDLobby, "publicIP", manager.externalIP);
  42.         SteamMatchmaking.SetLobbyData(manager.steamIDLobby, "internalIP", manager.hostInternalIP);
  43.         SteamMatchmaking.SetLobbyData(manager.steamIDLobby, "name", matchName);
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement