38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|