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("SpawnablePrefabs").ToList(); // ReSharper disable Unity.PerformanceAnalysis public override void OnStartClient() { var spawnablePrefabs = Resources.LoadAll("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); } } }