네트워크 멀티플레이 환경 문제 수정
관련 문제가 다시 발생하면 이 커밋으로 돌아올 것
This commit is contained in:
86
Assets/Scripts/NetworkDebug.cs
Normal file
86
Assets/Scripts/NetworkDebug.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using Unity.Netcode;
|
||||
using Northbound;
|
||||
|
||||
public class NetworkDebug : MonoBehaviour
|
||||
{
|
||||
private void Start()
|
||||
{
|
||||
Debug.Log("=== NETWORK DEBUG INFO ===");
|
||||
|
||||
// 1. NetworkManager 상태
|
||||
if (NetworkManager.Singleton != null)
|
||||
{
|
||||
Debug.Log($"NetworkManager: IsServer={NetworkManager.Singleton.IsServer}, IsClient={NetworkManager.Singleton.IsClient}, IsHost={NetworkManager.Singleton.IsHost}");
|
||||
}
|
||||
|
||||
// 2. 스폰 포인트 검색
|
||||
PlayerSpawnPoint[] spawnPoints = FindObjectsByType<PlayerSpawnPoint>(FindObjectsSortMode.None);
|
||||
Debug.Log($"PlayerSpawnPoints: Found {spawnPoints.Length} objects");
|
||||
foreach (var sp in spawnPoints)
|
||||
{
|
||||
Debug.Log($" - {sp.name} at {sp.transform.position}, isAvailable={sp.isAvailable}, spawnIndex={sp.spawnIndex}");
|
||||
}
|
||||
|
||||
// 3. NetworkConnectionHandler 확인
|
||||
var connectionHandler = FindObjectOfType<NetworkConnectionHandler>();
|
||||
if (connectionHandler != null)
|
||||
{
|
||||
Debug.Log($"NetworkConnectionHandler: spawnPoints.Count={connectionHandler.spawnPoints.Count}, findAuto={connectionHandler.findSpawnPointsAutomatically}");
|
||||
}
|
||||
|
||||
// 4. NetworkSpawnManager 확인
|
||||
var spawnManager = FindObjectOfType<Northbound.NetworkSpawnManager>();
|
||||
if (spawnManager != null)
|
||||
{
|
||||
Debug.Log($"NetworkSpawnManager: spawnPoints.Count={spawnManager.spawnPoints.Count}, findAuto={spawnManager.findSpawnPointsAutomatically}");
|
||||
}
|
||||
|
||||
// 플레이어가 스폰될 때까지 대기
|
||||
StartCoroutine(CheckPlayerAfterSpawn());
|
||||
}
|
||||
|
||||
private IEnumerator CheckPlayerAfterSpawn()
|
||||
{
|
||||
// 플레이어가 스폰될 때까지 최대 5초 대기
|
||||
for (int i = 0; i < 50; i++)
|
||||
{
|
||||
yield return new WaitForSeconds(0.1f);
|
||||
|
||||
var players = GameObject.FindObjectsByType<NetworkPlayerController>(FindObjectsSortMode.None);
|
||||
if (players != null && players.Length > 0)
|
||||
{
|
||||
Debug.Log($"Found {players.Length} player(s) - checking equipment...");
|
||||
|
||||
foreach (var playerCtrl in players)
|
||||
{
|
||||
Debug.Log($"Player found: {playerCtrl.name}, IsOwner={playerCtrl.IsOwner}");
|
||||
|
||||
var equipmentSocketOnPlayer = playerCtrl.GetComponent<Northbound.EquipmentSocket>();
|
||||
var networkEquipSocketOnPlayer = playerCtrl.GetComponent<Northbound.NetworkEquipmentSocket>();
|
||||
|
||||
if (equipmentSocketOnPlayer != null)
|
||||
Debug.Log($"Player has EquipmentSocket: YES");
|
||||
else
|
||||
Debug.LogWarning($"Player has EquipmentSocket: NO");
|
||||
|
||||
if (networkEquipSocketOnPlayer != null)
|
||||
Debug.Log($"Player has NetworkEquipmentSocket: YES");
|
||||
else
|
||||
Debug.LogWarning($"Player has NetworkEquipmentSocket: NO");
|
||||
}
|
||||
|
||||
Debug.Log("=== DEBUG INFO END ===");
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
// 5초 후에도 플레이어가 없는지 확인
|
||||
var finalCheck = GameObject.FindObjectsByType<NetworkPlayerController>(FindObjectsSortMode.None);
|
||||
if (finalCheck == null || finalCheck.Length == 0)
|
||||
{
|
||||
Debug.LogWarning($"Player did not spawn within 5 seconds!");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user