slowpoker/Assets/Scripts/CustomNetworkManager.cs

38 lines
1.1 KiB
C#
Raw Normal View History

2024-10-17 17:23:05 +03:00
using System;
using System.Linq;
using Mirror;
using UnityEngine;
using UnityEngine.SceneManagement;
public class CustomNetworkManager : NetworkManager
{
[Scene] public string menuScene;
public NetworkRoomPlayerLobby roomPlayerPrefab;
public static event Action OnClientConnected;
public static event Action OnClientDisconnected;
public override void OnStartServer() => spawnPrefabs = Resources.LoadAll<GameObject>("SpawnablePrefabs").ToList();
// ReSharper disable Unity.PerformanceAnalysis
public override void OnStartClient()
{
var spawnablePrefabs = Resources.LoadAll<GameObject>("SpawnablePrefabs");
foreach (var prefab in spawnablePrefabs)
{
NetworkClient.RegisterPrefab(prefab);
}
}
// ReSharper disable Unity.PerformanceAnalysis
public override void OnServerAddPlayer(NetworkConnectionToClient conn)
{
if (SceneManager.GetActiveScene().name == menuScene)
{
NetworkRoomPlayerLobby roomPlayerInstance = Instantiate(roomPlayerPrefab);
NetworkServer.AddPlayerForConnection(conn, roomPlayerInstance.gameObject);
}
}
}