Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using UnityEngine.Networking;
- using UnityEngine.Networking.Match;
- using Steamworks;
- using NATTraversal;
- public class SelectHost : Selectable {
- public DestroyOnNetworkConnect manager;
- protected CallResult<LobbyCreated_t> createLobby;
- // Use this for initialization
- void Start () {
- }
- public override void OnSelect ()
- {
- if(SteamManager.Initialized) {
- createLobby = CallResult<LobbyCreated_t>.Create(LobbyCallback);
- print("Creating lobby...");
- var handle = SteamMatchmaking.CreateLobby(ELobbyType.k_ELobbyTypePublic, 4);
- createLobby.Set(handle);
- // Do this on the host in OnCreateMatch() after creating the steam lobby
- } else {
- print("SteamManager not Initialized?");
- }
- }
- private void LobbyCallback(LobbyCreated_t pCallback, bool IOFailure) {
- if(IOFailure) {
- print("IOFailure.");
- return;
- }
- print("Lobby callback successful.");
- string matchName = SteamFriends.GetPersonaName();
- print("Creating lobby under name: " + matchName);
- manager.StartHostAll(matchName, (uint) 4);
- //manager.StartHost();
- print("Setting lobby for reference");
- manager.steamIDLobby = new CSteamID(pCallback.m_ulSteamIDLobby);
- SteamMatchmaking.SetLobbyData(manager.steamIDLobby, "guid", manager.cachedHelper.guid.ToString());
- SteamMatchmaking.SetLobbyData(manager.steamIDLobby, "publicIP", manager.externalIP);
- SteamMatchmaking.SetLobbyData(manager.steamIDLobby, "internalIP", manager.hostInternalIP);
- SteamMatchmaking.SetLobbyData(manager.steamIDLobby, "name", matchName);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement