Files
Multiplayer/Assets/Scripts/MyNetworkManager.cs
2025-06-16 15:24:27 +02:00

59 lines
1.5 KiB
C#

using Mirror;
using Steamworks;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyNetworkManager : NetworkManager
{
public static bool isMulitplayer;
public List<MyClient> allClients = new List<MyClient>();
public override void OnServerAddPlayer(NetworkConnectionToClient conn)
{
base.OnServerAddPlayer(conn);
MyClient client = conn.identity.GetComponent<MyClient>();
CSteamID steamId = SteamLobby.LobbyID.m_SteamID == 0 ? SteamUser.GetSteamID() : SteamMatchmaking.GetLobbyMemberByIndex(SteamLobby.LobbyID, allClients.Count);
client.playerInfo = new PlayerInfoData(SteamFriends.GetFriendPersonaName(steamId), steamId.m_SteamID);
}
public override void OnServerDisconnect(NetworkConnectionToClient conn)
{
base.OnServerDisconnect(conn);
}
public override void OnStartClient()
{
if (isMulitplayer)
{
MainMenu.instance.SetMenuState(MenuState.InParty);
PopupManager.instance.Popup_Close();
}
base.OnStartClient();
}
public override void OnStopClient()
{
if (isMulitplayer)
{
MainMenu.instance.SetMenuState(MenuState.Home);
}
base.OnStopClient();
}
public void SetMultiplayer(bool value)
{
isMulitplayer = value;
if (isMulitplayer)
NetworkServer.dontListen = false;
else
NetworkServer.dontListen = true;
}
}