기존 시스템 재사용 프로토타입 보존
This commit is contained in:
@@ -17,6 +17,8 @@ namespace Northbound
|
||||
|
||||
private Dictionary<ulong, int> _clientSpawnIndices = new Dictionary<ulong, int>();
|
||||
private int _nextSpawnIndex = 0;
|
||||
private NetworkManager _networkManager;
|
||||
private bool _callbacksRegistered;
|
||||
|
||||
// ⭐ Awake에서 스폰 포인트 먼저 찾고, 콜백 등록
|
||||
private void Awake()
|
||||
@@ -28,15 +30,25 @@ namespace Northbound
|
||||
}
|
||||
|
||||
// 2️⃣ 그 다음 콜백 등록
|
||||
if (NetworkManager.Singleton != null)
|
||||
{
|
||||
NetworkManager.Singleton.ConnectionApprovalCallback = ApprovalCheck;
|
||||
NetworkManager.Singleton.OnServerStarted += OnServerStarted;
|
||||
NetworkManager.Singleton.OnClientConnectedCallback += OnClientConnected;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
RegisterCallbacks();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
RegisterCallbacks();
|
||||
}
|
||||
|
||||
private void RegisterCallbacks()
|
||||
{
|
||||
if (_callbacksRegistered) return;
|
||||
_networkManager = GetComponent<NetworkManager>();
|
||||
if (_networkManager == null) _networkManager = NetworkManager.Singleton;
|
||||
if (_networkManager == null) return;
|
||||
|
||||
_networkManager.ConnectionApprovalCallback = ApprovalCheck;
|
||||
_networkManager.OnServerStarted += OnServerStarted;
|
||||
_networkManager.OnClientConnectedCallback += OnClientConnected;
|
||||
_callbacksRegistered = true;
|
||||
}
|
||||
|
||||
private void FindSpawnPoints()
|
||||
@@ -192,11 +204,11 @@ namespace Northbound
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (NetworkManager.Singleton != null)
|
||||
if (_callbacksRegistered && _networkManager != null)
|
||||
{
|
||||
NetworkManager.Singleton.ConnectionApprovalCallback = null;
|
||||
NetworkManager.Singleton.OnServerStarted -= OnServerStarted;
|
||||
NetworkManager.Singleton.OnClientConnectedCallback -= OnClientConnected;
|
||||
_networkManager.ConnectionApprovalCallback = null;
|
||||
_networkManager.OnServerStarted -= OnServerStarted;
|
||||
_networkManager.OnClientConnectedCallback -= OnClientConnected;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user